1.打印100~200之间的素数
素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了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; //若存在一个数j可以被i整除,则这个数不是素数,直接跳出循环
//else
//printf("%d",i);
}
if(j==i) //进行内层循环,直到j=i,这一层循环结束
{
printf("100~200之间的素数为:%d\n",i);
count++;
}
//printf("100~200之间的素数的个数为%d",count);
}
printf("100~200之间的素数的个数为%d",count);
return 0;
}
优化方案:
因为偶数不可能是素数,所以在判断素数时,我们可以将偶数去掉,即将外层循环代码改为 for(i=101;i<=200;i=+2)
运行截图:
2.输出乘法口诀表
/*
11=1
21=2 22=4
31=3 32=6 33=9
……
*/
#include<stdio.h>
int main()
{
int i=0;
for(i=1;i<=9;i++)
{
int j=0;
for(j=1;j<=i;j++)
{
printf("%d*%d=%-3d",i,j,i*j);
// %3d 控制宽度为三个字符,且右对齐;如果改为 %-3d 则为左对齐
}
printf("\n");
}
return 0;
}
运行截图:
3.判断1000年—2000年之间的闰年
分析:符合年份是闰年需要满足其中任意两个条件(1)能被4整除但不能被100整除,(2)能被400整除。
解一:
#include<stdio.h>
int main()
{
int year=0;
int count=0;
for(year=1000;year<=2000;year++)
{
//判断闰年
if(year%4==0)
{
if(year%100!=0)
{
count++;
printf("%d ",year);
}
}
if(year%400==0) //*************************此处一定要去掉else,
{
count++;
printf("%d ",year);
}
}
printf("\n1000~2000之间闰年的个数为:%d\n",count);
}
解二:
#include<stdio.h>
int main()
{
int count = 0;
int year = 0;
for (year = 1000; year <= 2000; year++)
{
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
{
printf("%d ", year);
count++;
}
}
printf("\n1000~2000之间闰年的个数为: %d\n", count);
return 0;
}
运行截图:
解一没去掉else时,这时运行结果是错误的:
正确的运行结果: