帮忙找错,初学者,谢谢,急急急!

编程输出1000以内的所有素数,要求每行输出8个数。

#include<stdio.h>
#include<math.h>
int prime(int);
void main()
{int i,m;
int j=0;
for(i=2;i<=997;i++)
{m=prime(i);
if(m==1)
printf("%4d",i);
j++;
if(j%8==0)
printf("\n);
}
}
int prime(int n)
{int a,k;
for(a=2;a<=sqrt(n);a++)
{k=n%a;
if(k==0)
return(0);
else
return(1);
}
}

谢谢,运行结果不对,会出现2 ,3,5,7,9;11,13,15,17,19;21,23,……是每隔两个数输出的

收到一只叮咚
浏览 98回答 3
3回答

素胚勾勒不出你

int prime(int n){int a,k;for(a=2;a<=sqrt(n);a++){k=n%a;if(k==0)return(0);}return(1);}改成这样试试你为什么要使用sqrt呢,为什么最多运行到他的平方根?改成a<n试试

眼眸繁星

看着总体上没什么大问题啊,报错是在哪里?一个满8个换行的,漏掉引号了还有一个sqrt是不是只接受double或者float的啊,加个sqrt((double)n)试试

慕田峪4524236

#include <stdio.h>#include <math.h>int main (){int i ,k=0 ,m ;for (m=2; m<=997; m=m+1){for (i=2; i<=sqrt(m);i=i+1)if (m%i==0) break ;if (i>sqrt(m)){printf("%d " ,m);k=k+1;if(k%8==0) printf("\n");}}printf("\n");return 0;}//跟你写的不一样 ,你先看看我的再找找你的错误&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java