中易网

C语言编程序,输入10个正整数,输出其中素数之和。不要有其他字符,1什么也不算..

答案:4  悬赏:70  
解决时间 2021-04-29 00:10

编程序,输入10个正整数,输出其中素数之和。不要有其他字符,1什么也不算..
错哪了?
#include<stdio.h>
void main()
{
 int a[10]={0},b[10]={0};
 int i,j,sum=0;
 printf("请输入10个数:\n");
 for(i=0;i<10;i++)
 scanf("%d",&a[i]);
  for(i=0;i<10;i++)
  {
  if(a[i]==1) continue;
  for(j=2;j<=a[i]/2;j++)
   { if(a[i]%j==0) break;
          if(j>a[i]/2) sum+=a[i];
   }
  }
  printf("sum=%d\n",sum);
}

最佳答案

if(j>a[i]/2) sum+=a[i];


把它移到外面去……


if(a[i]==1) continue;
  for(j=2;j<=a[i]/2;j++)
   { if(a[i]%j==0) break; 
   }
     if(j>a[i]/2) sum+=a[i];

全部回答
如果你输入十个3会发生错误,哈哈。逻辑有问题

if(j>a[i]/2) sum+=a[i];

当j>a[i]/2时,这句话是不能执行到的,因为此时跳出for(j=2;j<=a[i]/2;j++)
循环了。

所以改成:if(j==a[i]/2)sum+=a[i];

#include<stdio.h> void main() {  int a[10];  int i,j,sum=0,flge;//用flge记录是不是素数  printf("请输入10个数:\n");  for(i=0;i<10;i++)  scanf("%d",&a[i]);   for(i=0;i<10;i++)   {    flge=0;   if(a[i]==1)    continue;     for(j=2;j<=a[i]/2;j++)  {    if(a[i]%j==0)     {     flge=1;     break;    }    }  if(flge==0) //fleg为0时为素数,相加   sum+=a[i];   }   printf("sum=%d\n",sum); }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在西安做烧烤可以用木炭吗?
在新疆乌鲁木齐市有看颈椎的地方吗?
求 广州市初中英语录音带,的下载网址,即MP3
头很沉,很困,但就是睡不着,请问该怎么办才
如何提升机器配置,
一个男人很爱一个女人`那女的却执意要离开他
十月怀胎生下孩子
如何修改默认时区UTC为PRC
苗淼美容养发会所地址在哪,我要去那里办事
tall的同义词是什么?
在cydia里面一点击搜索就闪退。。。[真心求解
什么是投档线
仙剑4终级BOSS怎么打呀
备注为什么不能在聊天框里显示?
泸州饭店实惠店地址有知道的么?有点事想过去
推荐资讯
老二饭庄怎么去啊,有知道地址的么
鼻骨骨折做完复位手术后多长时间去医院复查?
什么是有氧呼吸
从长沙车站北路梦泽园去湖南师大坐什么车?
丸美弹力蛋白凝时紧致洁面晶怎么样
如何在电脑上玩手机网游?
我的戴尔INSPIRON mini用起来总是很烫,有没
枣树村地址有知道的么?有点事想过去
罗杰那做远古用的石头任务没了
倾听时的不良习惯??
怎么样按摩最放松自己?
全美街舞大赛第1季的冠军是哪个团队?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?