C语言初学者练习题(一)

1:判断是否是闰年

解题思路:首先要知道怎么判断闰年,才能做这道题,能被4整除并且不能被100整除,或者能被400整除,满足其中一个,则是闰年。

以下是我个人的解题方法,答案不唯一,仅供参考。

#include "stdio.h"
int main()
{
	int year = 0;
	scanf("%d", &year);
	if ((year % 4 == 0 )&& (year % 100 != 0) ||( year % 400 == 0))
	{
		printf("%d是闰年", year);
	}
	else
	{
		printf("%d不是是闰年", year);
	}
	return 0;
}

2:计算1-100之间出现9的个数

解题思路:9可以位于个位,也可以在十位上,因此要判断两种情况。以下答案不唯一,仅供参考。

#include "stdio.h"
int main()
{
	int a = 0;
	int count = 0;
	for (a = 1; a <= 100; a++)
	{
		if (a % 10 == 9)//计算各位上的9的个数
			count++;
		if (a / 10 == 9)//计算十位上的9的个数
			count++;
	}
	printf("count = %d", count);
	return 0;
}

3:分数求和: 1-1/2+1/3-1/4+1/5+...+1/99-1/100

解题思路:仔细观察,发现每一个都是加减加减的,因此可以有一个中间变量,在计算的时候,进行符号的改变。还有一个需要注意的地方就是,求和的时候不能再选用int类型。

以下答案不唯一,仅供参考。

#include "stdio.h"
int main()
{
	int i = 0;
	float sum = 0;
	int flag = 1;
	for (i = 1; i <= 100; i++)
	{
		sum += flag * 1.0 / i;
		flag = -flag;//加减加减..
	}
	printf("%f\n", sum);
	return 0;
}

4:打印100-200之间的素数:

解题思路:首先要知道什么是素数:只能被1和本身整除的称为素数,即2到i-1之间的任意一个数都不能被整除才是素数。以下答案不唯一,仅供参考。

#include "stdio.h"
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;
			}
	     }
		//当i在2到i-1都不能被j整除时,此时j==i
		if (j == i)
		{
			count++;
			printf("%d ", i);
		}
    }
} 
		

还有一个小细节:所有的偶数都不是素数,因此本题还可以在优化一下。本题还有更多的解题思路,留给大家自己思考吧~

#include "stdio.h"
int main()
{
	int i = 0;
	int count = 0;
	for (i = 101; i <= 200; i+=2)
	{
		int j = 0;
	    for (j = 2; j < i; j++)
		{
		if (i % j == 0)
			{
				break;
			}
	     }
		//当i在2到i-1都不能被j整除时,此时j==i
		if (j == i)
		{
			count++;
			printf("%d ", i);
		}
    }
} 
	

猜你喜欢

转载自blog.csdn.net/qq_69424518/article/details/126423722