C语言 求素数 代码

#include <stdio.h>
void main()
{
int a=1,b=2;
double c;
do
{
a=a+1;
do
{
c=a%b;
if (c!=0) b=b+1;
}
while(b<a,c!=0);
if (c!=0) printf("%d\n",a);
}
while (a<=100);
}

不显示任何东西 哪位帮我看看吧 到底哪里错了 谢谢了
如果是逻辑错误 请指出下嘛 谢谢了 或者给一段正确的代码

while(b<a,c!=0);
改为:
while(b<a&&c!=0);
就能保证编译通过,并且结果输出

但是你的代码有逻辑错误,所以输出结果不对

给你一个正确的吧:
#include <stdio.h>
int isPrime(int num)
{
int i,tag=1;
if(num==1)
return 0;
for(i=2;tag&&i<=num/2;i++)
{if(num%i==0) tag=0;break;}
return tag;
}
void main()
{
int i,t=0;
for(i=0;i<101;i++)
{
if(isPrime(i))
{t++;
printf("%2d ",i);}
if(t==5)
{printf("\n");t=0;}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-10
你自己看看,你那代码我看着头疼!
你看我的可以看懂就懂;不懂继续问!懂就不要问了!
真不知道你为什么用那么多while if
这代码你自己输入一个数字,他就会告诉你3到你那数字之间谁是素数;谁是合数!
#include "stdio.h"
main()
{
int i,j,k,n,q;
scanf("%d",&n);
for (i=3;i<=n;i++)
{
k=1;
for (j=2;j<i;j++)
{
q=i%j;
if (q==0) k=0;
}
if (k==1) printf("%d is su\n",i);
else printf("%d is he\n",i);
}

}
第2个回答  2009-03-10
#include <stdio.h>
void main()
{
int a=1,b=2;
double c;
do
{
a=a+1;
do
{
c=a%b;
if (c!=0) b=b+1;
}
while(b<a&&c); 就是这一行有改动
if (c!=0) printf("%d\n",a);
}
while (a<=100);
}