洞洞幺# 2023-11-24 21:44 采纳率: 66.7%
浏览 18
已结题

怎么找出两个数组中不相等的的元素并输出啊

看看题目吧

img

#include<stdio.h>
int main()
{
    int a[20];
    int b[20];
    int g[20];
    int n,m,s=0,i=0,c=0,k=0,f=0,h=0;
    scanf("%d ",&n);
    for(i=0;i<n;i++)
    {scanf("%d ",&a[i]);}
    scanf(" ");
    scanf("%d ",&m);
    for(i=0;i<m;i++)
    {scanf("%d ",&b[i]);}
    for(i=0;i<n;i++)
    {
        c=0;
        for(k=0;k<m;k++)
        {
            if(a[i]==b[k])
                c=1;
        }
        if(c==0)
        {
            g[f]=a[i];
            f++;
        }
    }
    for(i=0;i<m;i++)
    {
        c=0;
        for(k=0;k<n;k++)
        {
            if(b[i]==a[k])
                c=1;
        }
        if(c==0)
        {
            g[f]=b[i];
            f++;
        }
    }
    for(i=0;i<f;i++)
    {
        for(k=i+1;k<f;k++)
        {
            if(g[i]==g[k])
               {
                h++;
                for(s=k;k<f-h;k++)
                {g[k]=g[k+1];}
               }
        }
    }
    for(i=0;i<f-h-1;i++)
    {
        printf("%d ",g[i]);
    }
    printf("%d",g[f-h-1]);
}

这是我写的,差不多都对,有一个点没对,麻烦可以看看到底哪有小问题嘛

  • 写回答

1条回答 默认 最新

  • 创意程序员 2023-11-24 22:34
    关注

    第11行换成输出换行;
    比较用2轮嵌套循环就行,和现有的for(n)和for(m)差不多:第一轮,遍历a,对于a[i],到b中找是否存在,存在则下一个i,增加这个:不存在则检查a[i]是否在c中,不在添加到c;第二轮,遍历b到a中找b[i],参考第一轮流程。这样可以去掉你的for(f)这个循环,for(f)看着有点复杂

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月25日
  • 已采纳回答 11月25日
  • 创建了问题 11月24日

悬赏问题

  • ¥60 db2move nlzxams import 导出db2备份数据报错
  • ¥15 关于#python#的问题:全文总结功能咨询
  • ¥15 俄罗斯方块中无法同时消除多个满行
  • ¥15 c#转安卓 java html
  • ¥15 使用gojs3.0,如何在nodeDataArray设置好text的位置,再go.TextBlock alignment中进行相应的改变
  • ¥15 psfusion图像融合指标很低
  • ¥15 银河麒麟linux系统如何修改/etc/hosts权限为777
  • ¥50 医院HIS系统代码、逻辑学习
  • ¥30 docker离线安装mysql报错,如何解决?
  • ¥15 构建工单的总账影响在哪里查询或修改