繁体   English   中英

有人可以向我解释这段代码是如何工作的吗?

[英]Can someone explain to me how does this code work?

#include <stdio.h>


int main() {
    int array[101]={0},i=0,n;
    printf("Enter numbers: \n");
    for (int i=0; i<1000 ;i++){
      do {
          scanf("%d",&n);
          if ((n<0 || n>100) && n!=-1) {printf("Numbers must be between 0 and 100!\n");}
      } while ((n<0 || n>100) && n!=-1);
    if (n==-1) break;
    array[n]++;
    }

    for (i=0;i<=100;i++) {
      if (array[i]!=0) printf("Number %d occurs %d times.\n",i,array[i]);

    }
}

这个程序让用户输入0到100之间的大量数字,然后计算每个数字出现的次数,例如如果用户输入3 3 3 1,程序会写“数字3出现3次数字1出现1次“.. 代码有效,但我不明白它为什么有效以及如何有效。 尤其是最后一个 for 循环。 有人可以向我分解这段代码并逐步解释它是如何工作的吗? 先感谢您

数组变量 (int array[101]) 是一个数组,用于计算 i 被引入的次数。 它的所有位置都初始化为零。 例如,array[5] 包含输入数字 5 的次数。 每次键入时,它的值都会增加。

该指令增加数量:

数组[n]++; 其中 n 是输入的数字

最后一个循环遍历数组并仅显示已键入的数字 (array[i]!= 0)

for (i=0;i<=100;i++) { if (array[i].=0) printf("数字 %d 出现 %d 次,\n",i;array[i]); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM