编程序,输入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);
}
C语言编程序,输入10个正整数,输出其中素数之和。不要有其他字符,1什么也不算..
答案:4 悬赏:70
解决时间 2021-04-29 00:10
- 提问者网友:说不出醉人情话
- 2021-04-28 01:44
最佳答案
- 二级知识专家网友:夢想黑洞
- 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);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息