C语言新手求大佬解释一下代码当中的一行
/*输入学生的分数并显示出分布情况*/#include<stdio.h>#defineNUMBER80/*人数上限*/intmain(void){inti,j;intnu...
/*输入学生的分数并显示出分布情况*/#include<stdio.h>#defineNUMBER80/*人数上限*/intmain(void){inti,j;intnum;/*实际的人数*/inttensu[NUMBER];/*学生的分数*/intbunpu[11]={0};/*... /* 输入学生的分数并显示出分布情况 */ #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++) /* 100分 */ putchar('*'); putchar('\n'); for (i = 9; i >= 0; i--) { /* 不到100分 */ printf("%3d - %3d:", i * 10, i * 10 + 9); for (j = 0; j < bunpu[i]; j++) putchar('*'); putchar('\n'); } return 0; } bunpu[tensu[i] / 10]++;这一行代表的意思是什么呀,有什么作用,为什么要这样写。 展开
展开
展开全部
比如有一个人78分,那么78/10由于int
取下限,就是7,bunpu[tensu[i]/10]++;就是bunpu[7]++,即分类为7的人数加1,同样的,53就是分类为5的人数加1,等等
取下限,就是7,bunpu[tensu[i]/10]++;就是bunpu[7]++,即分类为7的人数加1,同样的,53就是分类为5的人数加1,等等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询