数组找重复数字 自己写的代码哪里有问题?为什么输出没有结果,能不能改一下

从键盘输入若干个整数,其值在1至4范围内,用-1作为输入结束的标志。统计每个整数的个数。

img

主要是一些使用的细节,如scanf里面%d后面不要\n 或空格,因为如果你在scanf里面使用了这些说明符,在输入的时候也 需要匹配这些字符,去掉就可以了。然后判断相等用==。以-1结束,需要稍微改进一下。


#include <stdio.h>

int main(void){
    int a=0,b=0,c=0,d=0;
    int arr[100];
    int j,i=0;


    scanf("%d",&arr[i]);
    while(arr[i]!=-1){
    
        if(arr[i]==1) a++;
        if(arr[i]==2) b++;
        if(arr[i]==3) c++;
        if(arr[i]==4) d++;
        i++;
        scanf("%d",&arr[i]);
        
    }    
    
    
    
    printf("1出现的%d次\n2出现%d次\n3出现%d次\n4出现的%d次\n",a,b,c,d);
    
    return 0;
} 

12到16行的if语句,括号里面都需要写两个等号
if(arr[i]==1)
这样的,写一个等号是赋值,两个等号才是判断

你这不是舍近求远吗。。。搞这么麻烦