你的程序如果输入的是2会有什么反应?没有经过循环直接判断c是否为0,而c并没有被赋予初始值,它的值是不确定的,那么结果也就是不确定的,所以你的程序是不健壮的,如下:
#include
void main()
{
int a,c,b=2;
printf("input a number\n");
scanf("%d",&a);
while (b<=a)
{
c=a%b;
if (c==0)
{
printf("N\n");
break;
}
else
b=b+1;
}
if (c!=0)
printf("Y\n");
}
改的地方已注释
#include
void main() //加小括号
{
int a,c,b=2;
printf("input a number\n");
scanf("%d",&a);
while (b {
c=a%b;
if (c==0) //是==,不是=,是0,不是o
{
printf("N\n");
break;
}
else
b=b+1;
}
if (c!=0)
printf("Y\n");
}
#include
void main
{int a,b=2,c;
printf("input a number\n");
scanf("%d",&a);
while (b{c=a%b;
if (c==0) //值相等要用==,=为赋值符号
{printf("N\n");
break;}
else b=b+1;
}
if (c!=0)
printf("Y\n");
}
else 没有跟if对上
你这个求素数的算法也错了
if (c=o)
这个 是0 不是o
而且即使写的 是0
也要两个等号 ==