永远有头发的阿仔 2021-04-23 09:09 采纳率: 100%
浏览 49
已采纳

大佬们,能不能看一下我这个哪里错了

 从键盘输入20个整数,输出这20个数中所有仅出现一次的数。如果没有这样的数,则输出:None。

这是题目,谢谢大佬们!!

#include<stdio.h>
void main()
{
	int i , j , a[20] ;
	int sum = 0 ,temp = 0 , flag = 0;
	printf("请输入20个整数:\n");
	for( i = 0 ; i<20 ; i++)
	{
		scanf("%d",&a[i]);
	}
	for( i = 0 ; i < 20 ; i++ )
	{
		flag = 0;
		for( j = i+1 ; j < 20 ; j++)
		{
			if( a[i] == a[j] )
			{
				continue;
			}
			flag = flag + 1;
			
		}
		if( flag == 20 - i )
		{
			sum = sum + 1;
			printf("%d",a[i]);
		}
	}
	if( sum == 0 )
		printf("NONE\n");
}
  • 写回答

2条回答 默认 最新

  • 正在学C++ 2021-04-23 09:27
    关注
    #include<stdio.h>
    int main()
    {
        int i , j , a[20] ;
        int sum = 0 ,temp = 0 , flag = 0;
        printf("请输入20个整数:\n");
        for( i = 0 ; i<20 ; i++)
        {
            scanf("%d",&a[i]);
        }
        for( i = 0 ; i < 20 ; i++ )
        {
            flag = 0;
            for( j = 0 ; j < 20; j++)    //要把所有数据有对比一遍,不能只对比后面的
            {
                if(j==i) continue;      //把j==i的去掉不考虑
                if( a[i] == a[j] )
                {
                    continue;
                }
                flag = flag + 1;
    
            }
            if( flag == 19 )     //固定19
            {
                sum = sum + 1;
                printf("%d ",a[i]);
            }
        }
        if( sum == 0 )
            printf("NONE\n");
        return 1;
    }
    

    修改了你的代码

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?