在下清河 2020-01-16 22:48 采纳率: 0%
浏览 514

求大神指点:怎么将数组一部分赋值给数组?

输入20个数,将素数输入并输出所有素数的和
我感觉是将满足条件的数赋值给新数组出了问题

#include<stdio.h>//找出素数,求和
int Su[20];
int A(int x[20],int Su[20])/*判断是否为素数并将素数给Su[20]*/
{
    int i,j,b,z=0;
        for(i=0,j=2;j<x[i]||i<20;i++,j++)
        {   b=x[i]%j;
            if(b==0)
                break;
            Su[z]=x[i];z=z+1;   break;
        }
}
int B(int Su[20])/*素数求和*/
{
    int i,s=0;
        for(i=0;i<20;i++)
            s=Su[i]+s;
        return(s);
}
int main()
{
    int x[20],i,p;
    printf("Enter 20 numbers:\n");
    for(i=0;i<20;i++)
    {   printf("%d、",i+1);
        scanf("%d",&x[i]);
    }
    printf("素数:\n");
    for(i=0,p=1;i<20;i++,p++)
    {   
        printf("%d ",Su[i]);
        if(p%5==0)
            printf("\n");
        }
    printf("素数的和是:%d\n",B(Su));
}
  • 写回答

1条回答 默认 最新

  • a5156520 2024-01-16 12:26
    关注

    将遍历数组x和判断素数分开即可。

    修改如下:

    参考链接:
    https://zhidao.baidu.com/question/86964847.html

    #include<stdio.h>//找出素数,求和
    int Su[20];
    int A(int x[],int Su[])/*判断是否为素数并将素数给Su[20]*/
    {
        int i,j,b,z=0;
            for(i=0;i<20;i++) // 遍历数组x中的所有元素下标 
            {   
                for(j=2;j<x[i];j++){  // 判断当前的元素x[i]是否是素数 
                    b=x[i]%j;
                    if(b==0)
                        break;
                } 
                
                if(j==x[i]){
                    Su[z]=x[i];
                    z=z+1; 
                } 
                 
            }
    }
    int B(int Su[20])/*素数求和*/
    {
        int i,s=0;
            for(i=0;i<20;i++)
                s=Su[i]+s;
            return(s);
    }
    int main()
    {
        int x[20],i,p;
        printf("Enter 20 numbers:\n");
        for(i=0;i<20;i++)
        {   printf("%d:",i+1);
            scanf("%d",&x[i]);
        }
        A(x,Su);
        printf("素数:\n");
        
        // https://zhidao.baidu.com/question/86964847.html
        for(i=0,p=1;i<20;i++)
        {   
            if(Su[i]!=0){  // 如果当前数组Su中的元素不为0,则打印它的值 
                printf("%d ",Su[i]);
                p++;
                if(p%5==0)
                    printf("\n");
            }
        }
        printf("\n素数的和是:%d\n",B(Su));
    }
    
    
    
    

    img

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog