#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个数读完。
满意请采纳,谢谢
很高兴为你解答
答案是:你的程序结构错了,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;
}本回答被提问者采纳
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;
}本回答被提问者采纳