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;
}