- 打印100~200之间的素数
思路:素数即该数除了1和它本身以外没有别的因数,考虑它对从2到它的前一位数依次进行取余,若余数为0,则说明它有其他因数,即不是素数。用变量“tag”判断是否有其他因数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, tag;
for (i = 100; i <= 200; i++)
{
tag = 0;
for (j = 2; j < i; j++)
if (i%j == 0) tag = 1;
if (tag == 0)
printf("%d\n", i);
}
system("pause");//使输出框暂停,不会一闪而过
return 0;
}
运行结果为:
- 输出乘法口诀表
思路:两重循环,分别得到乘法口诀表的行和列。
#include <stdio.h>
#include <stdlib.h>
int main()
{int i, j, t;
for (i = 1; i <= 9; i++)
{for (j = 1; j <= i; j++)
{t = i*j;
printf("%d*%d=%d\t", i, j, t = i*j);}
printf("\n");
}
system("pause");
return 0;
}
运行结果:
- 判断1000年—2000年之间的闰年
思路:能被400整除,或能被4整除而不能被100整除的年份即闰年。用循环结构、判断取余结果对年份依次进行判断。筛选出非闰年后,通过continue语句保证选闰年循环的正常进行。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
for (i = 1000; i <= 2000; i++)
{
if (i % 400 == 0) printf("%d", i);
else
if (i % 4 == 0)
if (i % 100 != 0) printf("%d,", i);
else continue;
else continue;
}
system("pause");
return 0;
}
运行结果如下:
以上是简单的循环结构,而我的源代码仍显得繁琐,(循环次数过多)。通过查资料了解到,可优化判断条件,如找素数时,外层循环中,除了2,其他偶数肯定不是素数,只需要判断奇数;而内循环中只需要判断到j不能被i的平方整除,就不用判断下去了,这样改进后的程序循环次数明显减少,运行效率会大大提高。在以后的学习中,我要注意程序的效率,通过逻辑或者语法优化程序。