c语言输入随机整数,求整数出现次数。无法进入循环。

c语言输入随机整数,求整数出现次数。无法进入循环。
问题相关代码,请勿粘贴截图
#include 
#include 

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
    int a,x,i;
    int number[10];
    for (i=0;i<10;i++){
        number[i]=0;
    }
    scanf("%d",x);
    while (x != -1){
        number[x]++;
        scanf("%d",x);
    }
    for(a = 0;a < 10;a++){
        printf("%d:%d",a,number[x]);
    }
    return 0;
}

无运行结果,且无报错

不出意外你进入死循环了
你这个代码可以优化下:

  1. 数组初始化,可以使用你这样的,但是memset 更好,可以查一下使用
  2. scanf 你不理解,它第一个参数是format,后面是将存放这写format 的地方,注意,你要告诉 scanf 地址,它才才能存,不是地址,它不认
  3. x 的值,你最好在while 中加上保护,很容易越界

scanf("%d",&x);

x少了&

首先是scanf("%d",&x),少了个取地址符
另外
x为什么是个int,难道不应该是个char吗
你这样搞,输入的时候每个数字之间必须加空格才行
否则你输入12345,这不是5个数,是1个数呀
你数组长度一共才10,你去12345的位置++,不越界了


可以看下c语言参考手册中的 c语言-整数常量