下面的程序只能筛选出素数但是没有求和,怎么加入求和的代码? #define N| #include"stdio.h" #include"math.hm int ifp(int a[]); int main() { int i; int a[N]; for(i=0;i
请把代码补全,这里只能看到部分代码。
/* Note:Your choice is C IDE */
#include "stdio.h"
#include"math.h"
#define N 5
int ifp(int a[]);
int main() {
int i;
int a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("\n素数的和是:%d\n",ifp(a));
}
int ifp(int a[]) {
int i,j;
int num=0;
int flag=0;
for(i=0;i<N;i++) {
flag = 0;
for(j=2;j<i;j++) {
if(a[i] % j==0){
flag = 1;
break;
}
}
if(!flag) {
num+= a[i];
printf("%d\t",a[i]);
}
}
return num;
}
写了两个函数,看看能不能满足你的要求,如有帮助,请采纳一下,谢谢。
//判断n是否是素数,是素数返回1,否则返回0
int ifp(int n)
{
for (int i = 2;i < n; i++)
{
if ( n % i == 0)
{
return 0;
}
}
return 1;
}
//判断a[]中素数的个数,并求素数的和,n是数组a的大小,sum是素数的和
//返回值是素数的个数
int ifp(int a[],int n,int &sum)
{
sum = 0;
int nmb = 0;
for (int i = 0; i < n;i++)
{
int is = 1;
int j = 0;
for (j = 2; j < a[i];j++)
{
if (a[i] % j == 0)
{
is = 0;
break;
}
}
if (is == 1) //是素数
{
nmb++;
sum += a[i];
}
}
return nmb;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632