问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图 #include<stdio.h>
#define NUMBER 80
int main(void) {
int i,j;
int num;
int tensu[NUMBER];
int bunpu[11]={0};//存放分数分布
printf("请输入学生人数:");
do{
scanf("%d",&num);
if(num<1||num>NUMBER)
{
printf("a\请输入1~%d的数:",NUMBER);
}
}while(num<1||num>NUMBER);
printf("请输入%d人的分数。\n",num);
for(i=0;i<num;i++){
printf("%2d号:",i+1);
do{
scanf("%d",&tensu[i]);
if(tensu[i]<0||tensu[i]>100)
{
printf("a\请输入1~100的数:");
}
}while(tensu[i]<0||tensu[i]>100);
bunpu[tensu[i]/10]++;
}
puts("\n分布图");
printf(" 100:");
for(j=0;j<bunpu[10];j++)
putchar('*');
putchar('\n');
for(i=9;i>=0;i--){
printf("%3d~%3d:",i10,i10+9);
for(j=0;j<bunpu[i];j++)
putchar('*');
putchar('\n');
}
return 0;
}
运行结果及报错内容
我的解答思路和尝试过的方法
1.无法理解for中for的逻辑关系,i,j变量是相关的吗?
2.书上说tensu的分布保存在bunpu中是如何实现的呢?
3.为何末尾for循环j<bunpu[10]那一行可以表示出100分呢?
同理为何下一个for循环可以表示出不到100分呢?
i与j不是两个变量吗为什么可以表示同一个方面的数据呢?