首页 > 其他分享 >3.C语言学习--分支与循环例题分析2

3.C语言学习--分支与循环例题分析2

时间:2024-02-05 20:32:26浏览次数:22  
标签:count main -- year C语言 int printf 100 例题

1.有三个数,将他们按照从大到小的顺序输出

int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d%d%d", &a, &b, &c);
	int tmp = 0;
	if (a < b)
	{
		tmp = a;
		a = b;
		b = tmp;
	}
	if (a < c)
	{
		tmp = a;
		a = c;
		c = tmp;
	}
	if (b < c)
	{
		tmp = b;
		b = c;
		c = tmp;
	}
	printf("%d %d %d\n",a,b,c);
	return 0;

}

2.打印1-100之间3的倍数

int main()
{
	int i = 0;
	for (i = 1; i <= 100; i++)
	{
		if (i % 3 == 0)
			printf("%d ", i);
	}
	return 0;

}

3.求两个数的最大公约数

int main()
{
	int m = 24;
	int n = 18;
	int r = 0;
	scanf("%d%d", &m, &n);
	while (r = m % n)
	{
		m = n;
		n = r;
	}
	printf("%d\n", n);
	return 0;
}

4.输出1000年至2000年之间的闰年

闰年的判断方法:

不是整百的年份只要被4整除的就是闰年,整百的年份必须得被400整除才是闰年

int main()
{
	int year = 0;
	int count = 0;
	for (year = 1000; year < 2000; year++)
	{
		if (year % 4 == 0 && year % 100 != 0)
		{
			printf("%d ", year);
			count++;
		}
		else if (year % 400 == 0)
		{
			printf("%d ", year);
			count++;
		}
	}
	printf("\ncount=%d\n", count);
	return 0;
}


5.打印100-200之间的素数

素数判断的方法:

试除法--在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

int main()
{
	int i = 0;
	int count = 0;
	for (i = 100; i <= 200; i++)
	{
		int j = 0;
		for (j = 2; j < i; j++)
		{
			if (i % j  == 0)
			{
				break;
			}
		}
		if (j == i)
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount=%d\n", count);
	return 0;
}

优化--辗转相除法

int main()
{
	int i = 0;
	int count = 0;
	for (i = 100; i <= 200; i++)
	{
		int j = 0;
		for (j = 2; j <= sqrt(i); j++)
		{
			if (i % j == 0)
			{
				break;
			}
		}
		if (j >sqrt(i))
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount=%d\n", count);
	return 0;
}

6.求1-100里面包含9的所有数,并计数

int main()
{
	int i = 0;
	int count = 0;
	for (i = 1; i <=100; i++)
	{
		if (i / 10 == 9)
		{
			printf("%d ", i);
			count++;
		}
		if (i % 10 == 9)//分别用if,因为有99这一个特殊的数字
		{
			printf("%d ", i);
			count++;
		}
		
	}
	printf("\ncount=%d\n", count);
}

7.分数求和,计算1/1+1/2+1/3+...+1/100。

int main()
{
	int i = 0;
	double sum = 0.0;//注意浮点型
	for (i = 1; i <= 100; i++)
	{
		sum += 1.0 / i;
	}
	printf("%lf\n", sum);
	return 0;
}
分数求和,计算1/1-1/2+1/3-...+1/100
int main()
{
	int i = 0;
	double sum = 0.0;//注意浮点型
	int flag = 1;
	for (i = 1; i <= 100; i++)
	{
		sum += flag * 1.0 / i;
		flag = -flag;
	}
	printf("%lf\n", sum);
	return 0;
}

8.求一个数组中的最大值。

int main()
{
	int arr[] = { -1,2,3,4,5,6,7,8,9 };
	int max = arr[0];
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 1; i < sz; i++)
	{
		if (arr[i] > max)
		{
			max = arr[i];
		}
	}
	printf("max=%d\n", max);
	return 0;
}

9.打印乘法口诀表

int main()
{
	int i = 0;
	for (i = 0; i <= 9; i++)
	{
		int j = 1;
		for (j = 1; j <= i; j++)
		{
			printf("%d*%d=%- 2d ", i, j, i * j);
		}
		printf("\n");
	}
	return 0;
}

10.猜数字游戏

void menu()
{
	printf("***********猜数字游戏***********\n");
	printf("*****   1.play    0.exit   *****\n");
	printf("********************************\n");
}
void game()
{
	int ret = 0;
	int guess = 0;
	ret = rand() % 100 + 1;
	while (1)
	{
		printf("请猜一个数字:>");
		scanf("%d", &guess);
		if (guess > ret)
		{
			printf("猜大了\n");
		}
			
		else if (guess < ret)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你,猜对了!\n");
			break;
		}

	}
}

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("请选择>:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误\n");
			break;
		}


	} while (input);
	return 0;
}

就这些啦,继续努力哦!

标签:count,main,--,year,C语言,int,printf,100,例题
From: https://blog.51cto.com/u_16541946/9612878

相关文章

  • 耗时一个月我问遍了身边的大佬,零基础自学Java的路线,适用程序员入门&进阶,Java学习路线,2
    作为一个有志于成为Java程序员的你,或许正处在技术生涯的起点,或许已经走过了入门的道路,期待跨越进阶的门槛?无论处于哪个阶段,一条明确的学习路线都至关重要,通过向众多行业大佬请教、反复探索和实践,总结出一套适用于零基础自学者大学四年Java学习路线,也同样适用于从初级到研发专家的学......
  • 无涯教程-LN2函数
    它返回2的自然对数,大约为0.693。LN2-语法Math.LN2LN2-示例console.log(Math.LN10)//thenaturallogarithmof10:~2.303运行上面代码输出0.6931471805599453参考链接https://www.learnfk.com/es6/es6-math-property-ln2.html......
  • 执行truncate时报错:ORA-00054:资源正忙但指定以NOWAIT 方式获取资源或者超时失效,怎样
    在执行TRUNCATE语句时出现错误,可能是由于以下原因之一:表正在被其他会话使用:如果表正在被其他会话使用,您将无法执行TRUNCATE操作。请确保没有其他会话正在使用该表,并尝试再次执行TRUNCATE。权限不足:如果您没有足够的权限来执行TRUNCATE操作,则会收到错误消息。请确保您具有足......
  • 联系信息的存储
    之前说过平台的用户信息是集中存储的。和用户相关的联系信息,包括手机号、电子信箱等等如何存储?是否和用户信息一样集中存储?    经过几次反复,最终决定还是分布存储。理由如下:    基本信息是分布存储的,例如人力资源系统存储内部人员信息,供应商系统存储供应商人员信息。......
  • neteq的peak detector解析
    neteq中的峰值检测原理如下:a)当interval_arrival_iat_packet超过target_level+2||interval_arrival_iat_packet>2*target_level的时候,认为这是一个峰值点b)记录该峰值点的高度(iat_packet)和该峰值点离上一个峰值点的间隔(period),然后放入记录数组boolDelayPe......
  • 关于CV_CAP_PROP_FRAME_WIDTH问题的解决
    关于CV_CAP_PROP_FRAME_WIDTH问题的解决此问题是OpenCV升级至4.x版本,对之前的写法不兼容的问题。解决方法是将CV删掉,即:CV_CAP_PROP_FRAME_WIDTH改为CAP_PROP_FRAME_WIDTH同样的,第二个报错的CV_CAP_PROP_FRAME_HEIGHT改为CAP_PROP_FRAME_HEIGHT按这个方式改正后,问题就得......
  • MySQL中复制表(创建表的副本、备份表)
    1.第一种复制表结构和数据--复制表的结构和数据,但是不会复制表的约束、外键、触发器、索引等createtabletest_duplicationasselect*fromtest;--此处的as可以省略2.第二种只复制表的结构createtabletest_duplicationasselect*fromtestwhere1=0;--此......
  • 初中英语优秀范文100篇-080The benefits of taking exercise-锻炼的好处
    PDF格式公众号回复关键字:SHCZFW080记忆树1Withthedevelopmentofoursociety,increasingimportancehasbeenattachedtohealthissues.翻译随着社会的发展,人们对健康问题的重视程度越来越高。简化记忆健康句子结构increasingimportance(主语)+hasbeenattach......
  • Linux文件分片、重组
    如果一个文件特别的大,想要直接打开的话会特别的慢,我们只需要对这个文件进行切割,变成许多个小的文件,然后再去查看小文件的话打开的速度就不会那么慢了切割文本#假设我们当前目录存在一个10G的文件data,现在对他进行分片[root@localhostopt]#split-d-b1Gdata"data-part"......
  • sql批量更新
    /***数据用sql批量更新**@param[type]$tableName表名,包含表前缀*@param[type]$updateData 待更新数据列表*@param[type]$updateField 更新字段数组列表,顺序需要与数据列表一致*@param[type]$whereId 更新条件,id、order_sn等*@returnvoid*......