输出九九乘法表及判断闰年等例题

1,九九乘法表的输出格式为 %d * %d =%d;

#include"stdio.h"
int main()
{
	int i, j;
	int s = 0;
	int n;
	for (i = 9; i > 0; i--){
		for (n = 1; n <= i; n++)
		{
			if (n == i)
				printf("\n");
		}

		for (j = 1; j <= i; j++, n++)
		{

			s = i*j;
			printf("%d*%d =%d ", i, j, i*j);
		}

	}
	system("pause");
	return 0;
}

若使输出结果向右对齐,可将 %d * %d =%d 改为 %d * %d =%2d;若为左对齐可改为 %-2d; 

2,判断1000年到2000年间的闰年;

首先,设一个变量的取值范围为1000年到2000年间,可用for循环来实现年数的增长, 即 for(int i=1000;i<=2000;i++)

其次,判断某一年是否为闰年有两个条件,即{可以被4整除同时不可被100整除;或者 可以被400整除};代码如下:

#include"stdio.h"
int main()
{
	int i;
	int count = 0;
	for (i = 1000; i <= 2000; i++)
	{
		if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0))
			printf("%d is rongnian \n", i);
		count++;	
	}
	printf("%d\n", count);
	system("pause");
	return 0;

}

为确定输出的是否正确可以加入一个变量 如 count;通过count可知输出的闰年的个数;

3,打印100到200间的素数

判断一个数是否为素数,首先应该清楚素数的定义,素数是只有1和其自身为因数,再无其余因数;

例如 i;有3种方法;第一种(用i 除从2到i-1间的每个数,如果都没有余数,那i为素数)第一种的代码如下:

#include"stdio.h"
int main()
{
	int i;
	int count=0;
	for (int a = 100; a <= 200; a++)
	{
		for (i = 2; i < a; i++)
		{
			if (a%i == 0)
				break;
		}//退出循环有两种情况,1 break跳出 2,当i=a时,即没有找到a 的因数;
		if (i == a)
		{
			printf("%d \n", a);
			count++;
		}
	}
	printf("count=%d\n",count);
	system("pause");
	return 0;
}

第二种为从2一直判断到 sqrt(i);退出循环的条件需改为(j>sqrt(i));代码如下:

#include"stdio.h"
#include"math.h"
int main()
{
	int i,j;
	int count=0;
	for (i = 100; i<=200 ; i++)
	{
		for ( j = 2; j<sqrt(i); j++)
		{
			if (i%j == 0)
				break;
		}
		if (j>sqrt(i))
		{
			printf("%d \n", i);
			count++;
		}
	}
	printf("count=%d\n",count);
	system("pause");
	return 0;
}

注意:此时用到函数 开方,则须在头文件中加入“math.h”

第三种为从2到(i/2)判断:

#include"stdio.h"
#include"math.h"
int main()
{
	int i,j;
	int count=0;
	for (i = 100; i<=200 ; i++)
	{
		for ( j = 2; j< i/2; j++)
		{
			if (i%j == 0)
				break;
		}
		if (j>= i/2)
		{
			printf("%d \n", i);
			count++;
		}
	}
	printf("count=%d\n",count);
	system("pause");
	return 0;

还可以再进一步改进程序,

可把for 语句中的条件改变,即如下:

#include"stdio.h"
int main()
{
	int i;
	int count = 0;
	for (int a = 101; a <= 200; a+=2)
	{
		for (i = 2; i < a; i++)
		{
			if (a%i == 0) break;
		}
		if (i == a)
		{
			count++;
			printf("%d \n", a);
		}
	}
	printf("count=%d\n",count);
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/xiaojiaoya666/article/details/80536048