输入一个正整数n, 再输入n个正整数,判断它们是否为素数.素数就是只能被1和自身整除的正整数

#include<stdio.h>
int main(void)
{
int n,i,m;
printf("输入正整数n: ");
scanf("%d",&n);
printf("输入%d个正整数: \n",n);
for(i=2;i<=n/2;i++){
scanf("%d",&m);
if(m%i==0)
break;
if(i>m/2&&m!=1)
printf("%d is shushu \n",m);
else
printf("%d is not shushu \n",m);
}
return 0;
}
为什么运行时不能继续读取我输得那n个数啊 C语言小白自学的 望大神指教

你好
很高兴为你解答

答案是:你的程序结构错了,for循环是用来判断一个数是否为素数,你却在for循环中不断的读入数,而且这里n是输入的数的个数,n/2是什么意思呢,一半的数? 你这里,一个n充当了多个用途。
所以你应该用双重循环,读取一个数,再用for判断这个数是否为素数;如此继续,直到n个数读完。

满意请采纳,谢谢
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-08
#include<stdio.h>
int main(void)
{
int n, i, m;
printf("输入正整数n: ");
scanf("%d", &n);
printf("输入%d个正整数: \n", n);
while (scanf("%d", &m)){
for (i = 2; i <= m / 2; i++){
if (m%i == 0)
break;
}
if (i > m / 2 && m != 1)
printf("%d is shushu \n", m);
else
printf("%d is not shushu \n", m);

}
return 0;
}

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网