前女友有新男朋友了:懂C语言的请进

来源:百度文库 编辑:高考问答 时间:2024/04/29 03:54:37
我想做 一个输出小于10000质数(只能被1和本身整除的整数)的程序.我编的程序如下:
#include <stdio.h>
main ()
{
int a,b;
a=2;
while(a<10000)
{
b=a-1;
while(a%b!=0)b=b-1;//从a-1开始寻找能整除的b
if(b=1)printf("%d,\t",a);//如果b=1证明a为质数
a++;
}
getchar();
getchar();
}
但是我的程序运行结果是7010到9999的所有整数,这是为什么啊?到底哪错了,我是一个初学c的人,谁能帮帮我

if(b=1)这个地方写错了
应该写为if(b==1)
C语言中判断相等是用两个等号
一个等号表示赋值
如果把一个非真的值给了b
那么if的条件将永远是真

=错误是其他语言转型者和初学者常犯的错误,楼主以后要注意了。

if(b=1)改为if(b==1)