[英]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.