Arrays 用C求数组中每个元素的频率

Arrays 用C求数组中每个元素的频率,arrays,c,Arrays,C,我的任务是找到每个元素的频率,元素在0到100之间-1表示输入结束 我在查找频率方面没有问题,但是我的代码有一些问题,我不知道它是什么。可能与do while循环有关。我是初学者,希望你能帮我 int main() { int n = 0, i = 0, a[100], c; int b[101] = {0}; do { scanf("%d", &c); if (c == -1) break; else if (c &

我的任务是找到每个元素的频率,元素在0到100之间-1表示输入结束

我在查找频率方面没有问题,但是我的代码有一些问题,我不知道它是什么。可能与do while循环有关。我是初学者,希望你能帮我

int main() {
  int n = 0, i = 0, a[100], c;
  int b[101] = {0};

  do {
    scanf("%d", &c);
    if (c == -1)
      break;
    else if (c < 0 || c > 100)
      printf("\nNumbers have to be between 0 i 100!\n");
    else {
      a[i] = c;
      i++;
      n++;
    }
  } while (c != -1);

  n--;
  for (i = 0; i < n; i++)
    b[a[i]]++;
  for (i = 0; i < n; i++) {
    if (b[i] != 0)
      printf("Count of %d is %d.\n", i, b[i]);
  }
}
intmain(){
int n=0,i=0,a[100],c;
int b[101]={0};
做{
scanf(“%d”、&c);
如果(c==-1)
打破
如果(c<0 | | c>100)
printf(“\n数字必须在0到100之间!\n”);
否则{
a[i]=c;
i++;
n++;
}
}而(c!=-1);
n--;
对于(i=0;i
什么样的问题?一是不使用缩进。还有什么?迈克尔,
n--可疑。为什么在那里?使用Post输入。
for (i=0;i<n;i++){
    if (b[i]!=0)
        printf("Count of %d is %d.\n", i,  b[i]);
}
for (i=0;i<101;i++){
    if (b[i]!=0)
        printf("Count of %d is %d.\n", i,  b[i]);
}
n--;