C语言关于数组方面的问题请教.
[解决办法]
1 main()
2 {
3 int i,a,n[101]; /*n[101]意思是0分,100分都有一档,所以定义为101*/
4 for (i=0;i<101;i++) n[i]=0; /*定义数组吗? 这是数组的初始化 把每个数组元素都赋值成0*/
5 for (i=1;i<=100;i++) /*此for语句结合下面的scanf为n[101]数组录入分数值*/
6 { scanf("%d",&a);
7 n[a]++; /*此处的n[a]++ 没有弄明白含义,请告知? n[a]对应的是多少分有多少人,a代表分数,++就是给这个值+1了*/
8 }
9 for (i=100;i>=0;i--) /*这个for语句没弄明白,是否意味着把数组里面的数据反向输出?说的对*/
10 printf("\n %3d:%3d",i,n[i]);
11 }
建议先把题目再读明白一点,我感觉你能看懂程序,可能是对题目理解有点小误差
[解决办法]
初始化 、指定位置数据自增 、反向遍历
[解决办法]
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试是程序员必须掌握的技能之一。
[解决办法]
#4是在对数组进行初始化
#7的意思是,你读入一个60分,那么就对代表60分的那个元素++;你读入一个100分,那么就对代表100分的那个元素++;最终就是统计每个分数的人数
#9是是按分数从大到小输出结果
另外说句,刚开始学习,养成排版的好习惯。