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

#include<stdio.h>intmain(void){intn,i,m;printf("输入正整数n:");scanf("%d",&n);printf("输入%d... #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语言小白自学的 望大神指教
展开
 我来答
xmcong2000
2014-12-08 · TA获得超过3471个赞
知道大有可为答主
回答量:1919
采纳率:0%
帮助的人:1292万
展开全部
你好
很高兴为你解答

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

满意请采纳,谢谢
匿名用户
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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式