取一组数字,然后只显示不同的数字

时间:2015-10-10 12:07:15

标签: c

在下面的代码中,我使用一个数组来读取4个数字,我只需要显示不同的数字。

#include <stdio.h>

int main(){
    int ch[3];
    int s[3];
    int count = 0;
    int i;
    int j;

    for(i = 0; i < 4; i++){
        scanf("%d", &s[i]);
        for(i = 0; i < 4; i++){
            ch[i] = s[i];
            printf("ch= %d", ch[j]);
        }

        if(ch[i] == s[i]){
            count = count + 1;
            printf("%d =", count);
        }
    }
}

有点我没有得到输出,它给了我一个奇怪的输出。

问题:

奇怪的输出可能是什么原因?

2 个答案:

答案 0 :(得分:0)

int ch[3];
int s[3];

这意味着对这些数组的有效引用可以从0到2,而你的for循环循环4次。

printf("ch= %d",ch[j]);
你的意思是ch [i]?

你用什么&#34; int j&#34;为了?

答案 1 :(得分:0)

不能理解这个问题,但是我写了一个代码,用于获取4个输入,并将其中的不同数字作为输出(或仅发生一次的数字)。

#include <stdio.h>
int main(){
   int ch[4];
   int s[4];
   int i;
   int j;
   for(j=0;j<4;j++){
    ch[j]=0;
    }

   for( i=0;i<4;i++){
    scanf("%d",&s[i]);
    }
   for(i=0;i<4;i++){
        for(j=0;j<4;j++){
            if(s[i]==s[j]){
                ch[i]++;
            }
        }
   }
   for(i=0;i<4;i++){
        if(ch[i]==1){
            printf("\n%d is the distinct number.", s[i]);
        }
   }
}