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

 从键盘输入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");
}

 

#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;
}

修改了你的代码

#include<stdio.h>
int main(){
    int num[200]={0}, e, sign=0;
    for(int i=0;i<20;i++){
        scanf("%d",&e);
        num[e]++;
    }
    for(int i=0;i<200;i++)
        if(num[i]==1){
            printf("%d ",i);
            sign=1;
        }
    if(sign==0) printf("None");
    return 1;
}

我给你写了一个取巧的办法