中易网

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

答案:4  悬赏:70  
解决时间 2021-04-29 00:10
  • 提问者网友:说不出醉人情话
  • 2021-04-28 01:44

编程序,输入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);
}

最佳答案
  • 二级知识专家网友:夢想黑洞
  • 2021-04-28 02:16

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];

全部回答
  • 1楼网友:萌萌哒小可爱
  • 2021-04-28 04:41
如果你输入十个3会发生错误,哈哈。逻辑有问题
  • 2楼网友:单身小柠`猫♡
  • 2021-04-28 03:19

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];

  • 3楼网友:输掉的尊严
  • 2021-04-28 02:48
#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); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息