限制头文件#include<stdio.h> 一个整型数组中(数组长度不超过20)除了两个数字之外,其他的数字都出现了两次。请写程序找出这2个只出现一次的数字。

输入要求

先输入一个N,接下来一排有N个整数,N小于20
这N个数在int范围内

输出要求

2个整数。按照输入顺序优先输出

限制要求

只能使用限制头文件所含的内容

# 我自己的错误代码示范

(你问我为什么什么都没学也要做,那就教了这个我也没办法啊)

#include<stdio.h>
int main(){
    int N;
    int n=0;
    int c,i=0,v=1,d=0,x=1;
    int r,h=0;
    int a[19];
    int b[19];
    int e[19];
    while(scanf("%d", &N)!=EOF){// N 总个数 

        for(i;i<=N-1;i++){
            scanf("%d", &a[i]);
            e[i-1]=a[i];
            b[i]=a[i];
            }c=1;
        if(c==1){   
            for(x;x<=N;x++) {
                for(n;n<=N-2;n++){ 
                r=a[x] - e[n];    //相同时候r为0 
                 printf("x=%d  n=%d r=%d  x=%d ax=%d en=%d \n",x,n,r,x,a[x],e[n]);      
                if(r==0){    //相同数字 
                    printf("b=%d\n", b[n]);
                    b[x]=0;
                    }       
                    }}  }               
                    for(h;h<=N-1;h++){
                    if(b[h]!=0){
             printf("bn=%d \n",b[2]);//输出答案 
                   }}

                //   测试数据14【回车】  12 34 12 34 56 78 67 67 78 98 98 89 89 55





}}//结尾 

1个回答

#include<stdio.h>
int main(){
    int n;
    int arr1[20];
    int arr2[20];
    int curr = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        int x;
        int j;
        scanf("%d", &x);
        for (j = 0; j < curr; j++)
        {
            if (arr1[j] == x)
                break;
        }
        if (curr == j)
        {
            arr1[curr] = x;
            arr2[curr++] = 1;
        }
        else
        {
            arr2[j]++;
        }
    }
    for (int i = 0; i < curr; i++)
    {
        if (arr2[i] == 1) printf("%d ", arr1[i]);
    }
}

14
12 34 12 34 56 78 67 67 78 98 98 89 89 55
56 55 Press any key to continue . . .

如果问题得到解决,请点下采纳

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问