我写了一个简单的代码,打印输入的数字中的所有素数。我想打印打印多少个素数。我认为它的打印(“%d”,c ++);但我不知道该把它放在哪里。我已经尝试在返回0之前把它放好;在素数方法结束但它不起作用。素数打印得很好,但计数器不打印。
void main(void){
int pri;
scan("%d",&pri);
prime(pri);
}
void prime(int n){
int m,i,c,x;
for(m = 1;m<=n;m++){
c = 0;
for(i=2;i<=m/2;i++){
if(m%i==0){
c++;
break;
}
}
if(c==0 && m!= 1){
printf("%d ",m);
}
}
print("the count is: ");
print("%d",c);
return 0;
}
如果输入100,我希望输出为:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59
61 67 71 73 79 83 89 97
The count is 25.
答案 0 :(得分:0)
添加变量count
,因为c
不是您的计数。它是一个本地测试变量,是否已找到素数。在for循环前添加int count = 0;
并在结尾处打印而不是c
。在打印单个素数的if语句中,添加count++;
。
int n = 100; // for copy paste purposes
int m,i,c,x;
int count = 0;
for(m = 1;m<=n;m++){
//c = 0;
for(i=2;i<=m/2;i++){
if(m%i==0){
c++;
break;
}
}
if(c==0 && m!= 1){
printf("%d ",m);
count++;
}
}
printf("\nthe count is: %d\n", count);
答案 1 :(得分:0)
你的程序应该处理很多事情,最重要的是它应该首先编译,我非常怀疑它在这一点上做了。以下是一个有效的例子,有修改
i
注意 - 更好地格式化密钥。