我正在尝试计算用户输入某个数字的次数并将实例总数分配给 10 行数组(0-9)中的某个位置。例如,如果用户输入888
,它将分配3
到位置 arr1[8]。
#include <stdio.h>
#include <stdlib.h>
int main(void){
int arr1[10] = {0};
int c;
while ((c = getchar()) != '\n'){
for (int i = 0; i <= 9; i++){
if (c == i) // This isn't doing what I want it to do
arr1[i] += 1;
}
}
for (int i = 0; i <= 9; i++)
printf ("%c ", arr1[i]);
}
问题似乎是我在上面的评论中添加的那行。该行if (c == i)
旨在比较用户输入的数字(因为它是由用户输入的,而不是 ASCII 值)并将其与i
.
那么如何比较c
和i
作为同一类型呢?我尝试将类型更改为getchar()
,char, signed int, unsigned int
但似乎没有任何区别。