《比较两组整数》

【问题描述】
比较两组整数是否有相同的元素,不考虑元素的顺序,并忽略元素重复的情况。例如:
1  4  9  16  9  7  4  9  11
与下列一组整数:
11  7  9  16  4  1
相同。
【输入形式】
分行输入两组整数,以空格分割
【输出形式】
打印两组整数中相同的元素,顺序以第一行的整数输出顺序为准,如果没有相同元素,打印"No Answer"

【输入样例】

1 4  9  16  9  7  4  9  11
11  7  9  16  4  1

【输出样例】

"#"代表空格
1#4#9#16#7#11#

【样例说明】
输入两组整数
1  4  9  16  9  7  4  9  11
11  7  9  16  4  1
由于这两个数组具有相同的元素,顺序打印第一行与第二行相同的元素

#include <stdio.h>
int main()
{
    int a[20],b[20],c[20];
    int i,j,q,k=1,t=1,z=0;
    int tag=0;
    
    for(i=0;i<20;i++)
    {
        scanf("%d",&a[i]);
        if(getchar()=='\n')
            break;
        else
            k++;
    }

    for(i=0;i<20;i++)
    {
        scanf("%d",&b[i]);
        if(getchar()=='\n')
            break;
        else
            t++;
    }    

    for(i=0;i<k-1;i++)//最后一个数不能比
    {
        for(j=i+1;j<k;j++)//找同一行里重复的
            if(a[i]==a[j])
            {
                for(q=j;q<k;q++)
                    a[q]=a[q+1];
                k--;
                j--;
            }
    }

    for(i=0;i<t-1;i++)//最后一个数不能比
    {
        for(j=i+1;j<t;j++)//找同一行里重复的
            if(a[i]==a[j])
            {
                for(q=j;q<t;q++)
                    b[q]=b[q+1];
                t--;
                j--;
            }
    }
    
    for(i=0;i<k;i++)
    {
        for(j=0;j<t;j++)
        {
            if(a[i]==b[j])
            {
                c[z]=a[i];
                z++;
                tag=1;
            }
        }
    }
    
    if(tag==1)
    {    for(i=0;i<z;i++)
            printf("%d ",c[i]);
    }
    else if(tag==0)
        printf("No Answer");

    printf("\n");
    return 0;
}

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值