题目:
编写一个程序,只接受正整数输入,然后显示所有小于或等于该数的 素数
答案:
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,prime,x;
printf("please enter a number(<=0 to end):");
// 这次不用do while循环,因为未来提高程序的可用性,使得该程序可以反复使用直至用户想要停止
while(scanf("%d",&n)==1&&n>0)
{
// 注意n=1的情况,因为1不是素数
if(n==1)
{
printf("1 not a prime\n");
printf("you can enter again:");//这句话也很友好,如果是1则提示用户重新输数
continue;//注意这个continue的用法,continue使得程序跳过这次循环(注意是while循环!)
}
printf("the prime <=%d is:\n",n);
for(i=0;i<=n;i++)
{
prime=1;
//以下程序来检验是否为素数
for(x=2;x<=sqrt(i);x++)//注意是<=
{
if(i%x==0)
{
prime=0;
break;
}
}
if(prime)
printf("%-3d",i);
}
printf("you can enter again(<=0 to end):");
}
printf("done!\n");
return 0;
}
关于continue在while循环中的使用及和break的区别:
1、continue:结束本次的循环,进入下一次的循环,只能运用到循环中。
2、break是终止,跳出,结束循环。常与switch分支结构合用。
今天的blog码的是道比较简单的题,但是这题因为瞎(枯)又找了好久并不存在的bug,一定要注重提高自己对代码的敏感度!!!