在下清河 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

    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面