qazwsxedc1267834 2021-11-14 20:32 采纳率: 100%
浏览 163
已结题

键盘输入10个整数,将重复的数找出来(只输出一次),若没有,输出No。



#include <stdio.h>
int main()
{
    int a[10],b[10];
    int i,j,sum=0,sum1=0,k;
    for(i=0; i<10; i++)
        b[i]=0;
    for(i=0; i<10; i++)
        scanf("%d",&a[i]);
    for(i=0; i<10; i++)
        for(j=i+1; j<10; j++)
        {
            if(a[i]==a[j])
            {
                b[i]=1;
                b[j]=1;
            }
        }
    j=0;
    for(i=0; i<10; i++)
        if(b[i]==1)
            sum+=1;
    for(i=0; i<10; i++)
    {
        if(b[i]==1)
        {   sum1++;
            if(sum1!=sum)
            {   printf("%d ",a[i]);
                j++;
            }
            if(sum1==sum)
            {   printf("%d",a[i]);
                j++;
            }
        }
    }
    if(j==0)
        printf("No");

}

如果我输入的是这一组数据,3 5 7 2 5 3 8 5 9 0按道理应该输出3 5,但是我的输出是
3 5 5 3 5
我找不到原因在哪里,请帮忙修改,如果无法修改,请帮忙写新的代码,要注意输出的答案,最后没有空格,但是数字之间有,否则会提交会出现格式错误

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-11-14 20:52
    关注

    思路是定义两个数组,一个是输入的数,一个是数的重复次数。没输入一个新的数,检查是否已在数组中,在这对应的次数加1,不在则加入数组

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

报告相同问题?

问题事件

  • 系统已结题 11月24日
  • 已采纳回答 11月16日
  • 创建了问题 11月14日