#include<stdio.h>
int main()
{
int a,b,c,d,e=0;
scanf("%d,%d\n",&a,&b);
for(c=a;c<=b;c++)
{
for(d=2;d<=c;d++)
{
if(c%d==0&&d!=c)
{
break;
}
if(d==c)
{
e=e+1;
printf("%d ",c);
}
}
printf("两数间素数共有%d\n",e);
return 0;
}
请问下这个代码错在哪里了,运行的时候感觉中间的都没走,直接打印的是e=0的结果,头疼死了
#include<stdio.h>
int main()
{
int a,b,c,d,e=0;
scanf("%d,%d\n",&a,&b);
for(c=a;c<=b;c++)
{
for(d=2;d<=c;d++)
{
if(c%d==0&&d!=c)
{
break;
}
if(d==c)
{
e=e+1;
printf("%d ",c);
}
}
}
printf("两数间素数共有%d\n",e);
return 0;
}
例:
#include<stdio.h>
voidmain()
{
inti,j,a,b;
intc[100],count;
count=0;
do/*让输入的数a小于数b*/
scanf("%d%d",&a,&b);
while(a>b);
for(i=a;i<=b;i++)/*判断a.b之间的素数*/
{for(j=2;j<i;j++)
if(i%j==0)break;
if(i==j)c[count++]=i;/*如果是素数,最后i==j,把素数存入数组c,且count计数*/
}
for(i=0;i<count;i++)/*输出结果*/
{printf("%d",c[i]);
if((i+1)%5==0)printf("\n");
}
printf("素数的个数%d:",count);
}
扩展资料
C语言输出任意两个数之间的质数
#include<stdio.h>
staticintisPrime(intn);
voidmain()
{
intlow,high;
intflag=1;
while(flag==1)
{
printf("输出两个数(一空格分割):");
scanf("%d%d",&low,&high);
/*
//3.利用异或运算来交换数据
//利用的思想原理是:一个数异或同一个数两次,结果还是那个数,而且不会超出int范围
unsignedinta=60;//00111100
unsignedintb=13;//00001101
printf("交换之前:a=%d,b=%d\n",a,b);//输出a,b的值
a=a^b;//a=a^b=00110001
b=a^b;//b=a^b=00111100
a=a^b;//a=a^b=00001101
printf("交换之后:a=%d,b=%d\n",a,b);//输出a,b的值
*/
//如果low输入的值大了,交换,保证low的值小于high
if(low>high)
{
low=low^high;
high=low^high;
low=low^high;
}
inti;
staticintfirst=0;
intcount=0;
for(i=low;i<high;i++)
{
if(isPrime(i)==1)//如果i是质数
{
//输出逗号,第一个逗号屏蔽
if(first==1)
{
printf(",");
//每十个束素数一行
if(++count%10==0)
printf("\n");
}
elsefirst=1;
printf("%5d",i);//输出素数
}
}printf("。");
printf("\n继续[1/0]?:");
scanf("%d",&flag);
}
}
staticintisPrime(intn)//判断n是不是质数
{
if(n<=1)
return-1;
intISPrime=1;//默认是质数,用1表示
inti;
之前把那个if删了,重新打的if手抖没上括号,但是上了括号也一样的啊
就是不报错。运行的时候直接输出e=0.给我的感觉就是从第一个for就直接忽略了
你把第二个if(d==c)改成else试试。
追问。。。else肯定不对吧、、、、前一个if是同时满足两个条件,第二个if吐过换成else意味着只要一个条件不满足都走else
追答你是用的什么软件,下面这位用VS的老兄说能成功,我用VC.6.0和你情况一样。
既然能成功就说明你代码没问题。
我也用的vs啊。。
绝对撞鬼了
是啊,没报错,只是运行的时候打印的结果为0
怎么输入不同的值,打印结果都是0.给我的感觉就是中间那部分完全跳过了
打印不是0,你再试一下,scanf不是这样读换行的,你再试下!
纳尼。。。。
你可能建错了,重新建个工程,c++的也能编译。
重建还是不行。。。。。。。
撞鬼了?
你那个逗号是中文逗号,换英文的的再试!
本回答被提问者和网友采纳