c语言程序设计,求5个学生5门课的平均成绩,求高手指点,谢谢,万分感激

题目是这样的,已知5个学生5门课的成绩,要求输出平均成绩最高的学生的成绩,以及该学生的学号,我们用的是清华版本谭浩强的程序设计,感觉有点难啊,请高手指点一下啊,谢谢啊,书中的答案是这样的:
#include <stdio.h>
void main()
{
int i,j,max_i;
float sum,max=0;
float s[6][6]={{78,82,93,74,65},{91,82,72,67,76},{100,90,85,72,98},{67,89,90,65,78},{77,88,99,45,89},{78,89,76,99,97}};
for(i=0;i<=5;i++)
{sum=0;
for(j=0;j<5;j++)
sum=sum+s[i][j];
s[i][5]=sum/5;}
for..........
这里说明一下啊,省略号是我看明白的地方,我看不明白的地方在于,sum=sum+s[i][j];这个语句的意思是,把第i行,J列的某个数据累加到SUM中,但是,地下的一句s[i][5]=sum/5;怎么是把平局数SUM/5存放到第I行,第J列的位置啊,不是说求平均数码,求高手指点一下啊,万分感激啊最好说详细一下啊,还有,这个循环油内循环,外循环,到底是怎么执行的,说明顺序,求高手详细指点,最好详细一点,写下啊
这里说明一下啊,省略号是我看明白的地方,我看不明白的地方在于,sum=sum+s[i][j];这个语句的意思是,把第i行,J列的某个数据累加到SUM中,但是,地下的一句s[i][5]=sum/5;怎么是把平局数SUM/5存放到第I行,第J列的位置啊,不是说求平均数码,求高手指点一下啊,万分感激啊最好说详细一下啊,还有,这个循环油内循环,外循环,到底是怎么执行的,说明顺序,求高手详细指点,最好详细一点,写下啊。。这里么是把"平局数SUM/5存放到第I行,第J列的位置啊"应该是么是把平局数SUM/5存放到第I行,第5列的位置“,写错了,不好意思

你的数组是6行6列的,s[i][5]是把每一列的平均数放在了该列的最后
你看下你的数组每行按声明的数组应该是6个数据,而在赋初值时只有5个数据,分别为5门成绩
而s[i][5]=sum/5就是把每行5门成绩的平均分算出来然后放在该行的最后
这下明白了吧
补充:
你的这个外循环是控制列的,外循环第循环一次里面的内循环就要循环5次,内循环是控制行的
目的是循环的每一列时再循环5次实现5门成绩相加再算出平均值放到该列的最后追问

谢谢啊,但是只能选一个答案啊,下次一定选你啊,万分感激啊

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-25
这个程序是先执行for(i=0;i<=5;i++) ,i=0代表第一个学生成绩的第一个,然后设置和为零,执行for(j=0;j<5;j++) sum=sum+s[i][j]:循环5次把第一个学生的成绩总和算出来,s[i][5]=sum/5;是把第一个学生的成绩算出平均分寻在数组的S[0]【5】也就是数组里第一个学生各科成绩的后面。之后i ++变成i=1,执行for(j=0;j<5;j++) sum=sum+s[i][j]:又算成第二个学生的平均成绩存在其成绩的后面。看懂这个程序主要是你要知道二维数组是什么结构,程序里定义的数组float s[6][6] 其实是有7*7个存储单元的。希望你能看懂我在说什么追问

谢谢啊,由于只能选择一个作为最佳答案,嘿嘿,还是感谢你啊,万分的感激啊

第2个回答  2012-02-25
两层for循环的执行顺序:
其实对于两层for循环,可以拆成多个一层的for循环。如上就可以拆成如下的for循环:
for(j=0;j<5;j++)
sum=sum+s[0][j];
s[0][5]=sum/5;
}
for(j=0;j<5;j++)
sum=sum+s[1][j];
s[1][5]=sum/5;
}
......
for(j=0;j<5;j++)
sum=sum+s[5][j];
s[5][5]=sum/5;
}
看明白了吗,每次i都会执行一次内部for循环,只不过每次i的取之不同而已。

再来说说那个数组:
float s[6][6]={{78,82,93,74,65},{91,82,72,67,76},{100,90,85,72,98},{67,89,90,65,78},{77,88,99,45,89},{78,89,76,99,97}};
这是一个二维数组,长度都是6.首先有6个一维数组作为外层数组的元素,这个很明确,如下:
s[0] = {78,82,93,74,65};
s[1] = {91,82,72,67,76};
.....
s[5] = {78,89,76,99,97};
从原始的定义s[6][6]知道,如上数组长度都是6,但明显这些数组只有5个元素,那么就默认第六个元素的值为0.所以如上数组实际应该是这样的:
s[0] = {78,82,93,74,65,0};
s[1] = {91,82,72,67,76,0};
.....
s[5] = {78,89,76,99,97,0};
这样就不难理解了,看这句代码:
sum=sum+s[i][j];
由于j的取值最大为4,也就是说,这样循环下去,sum的值就是s[i]的前五个元素的和。接下来的s[i][5]=sum/5;就不难理解了,这是将前五个数的和取平均值,放在第六个元素里。

就是这么简单。本回答被提问者采纳

输入10个学生5门课的成绩,分别用函数求: (1)每个学生平均分; (2)每门...
int i)\/* 求每个学生平均分*\/ { int j; float ave=0,sum=0;; for (j=1;j<6;++j) sum+=score[i][j]; ave=sum\/5; return ave; } float perave (float score[][6],int j)\/*求每门课程平均分*\/ { int i;

c语言,高手指点一下,想输出最高分的名字和成绩
--p;printf("最高分的学生名字:%s\\n",p->name);printf("最高分的学生学号:%d",p->number);return 0;} 测试结果

c语言编程:处理学生信息
这个程序实际过程上很简单啊,基本上就是一条线流程,看起来比较复杂 读入一个n,然后设置一个读入某一个学生数据的函数 同理依次读取,然后同理读入课程和成绩数据 你可以建立一个自定义type,里面记录了学号、性别,姓名等一个人的数据。。你也可以再建立一个数据类型,里面记录了一个老师所教的所有...

C++和C语言有什么不同?
C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事...

...我想请问一下基本的框架怎么写???请高手指点!!!
int cj[3];\/\/3门课程的成绩 }STU,*STUP;typedef struct stulist{ STUP elem;\/\/结构体指针变量 int listsize;\/\/容量 int length;\/\/长度 }SqList;\/*自定义函数说明*\/ int initSqlist(SqList &L,int n);int insertSqlist(SqList &L,STU x,int i);void creatSqlist(SqList &L,int m...

c语言 用数组输入10个学生3门课成绩调用函数 求每个学生的总分均分 每...
main(){float s[13][5];int i,j;for(i=0;i<10;i++)for(j=0;j<3;j++)scanf("%f",&s[i][j]);\/\/先输入所有人的成绩,再调用函数 void ssa(s);void cmm(s);void ca(s);for(i=0;i<10;i++)printf("\\n");for(j=0;j<3;j++)printf("%.1f",s[i][j]);} ...

求C语言的学习心得 或者 方法总结 什么的
掌握C语言的基本语法和规定。 * 掌握程序设计基本算法和思路,开拓思路, * 提高上机操作能力,掌握上机调试程序的方法 * 培养自学能力,强调自主学习。 * 养成良好的程序设计习惯。 通过总结多年的教学经验,总结学生在学习过程中具有规律性的特点,可以发现,在本课程学习过程中学生经常出现下面...

c语言入门教学
初学C语言程序设计的基本方法和技巧C语言是一门应用最广泛的基础高级编程语言,有很多语言都是由它发展而来的,所以学习好C语言之后再学习任何一种编程语言都会轻松上手。 1 熟记基本知识点 学习C语言和学习任何一种语言的方法基本一样。我们婴儿期间咿呀学语时,从一个字开始学,然后两个,接着更多,最后我们能成句...

怎样学C语言啊,感觉C好难哦。
二.学好C语言的四种程序结构(1)顺序结构顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。例如;a = 3,b = 5,现交换a,b的值,这个问题就好象交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; ...

自学C语言需要什么基础啊?英语和数学基础不好可以吗?诚心请专业朋友指点...
自学C的话肯定不容易,你需要一本好点的教材,不要多,一本就够了,像谭浩强的《C程序设计》第四版,或者 《C primer plus》等等,我觉得谭浩强的那本就够了,毕竟风风雨雨过来20年了,然后我推荐你个视频,挺不错的,是郝斌老师把自己上的C语言课录下来免费发到网上供初学者用的,很不错,链接...

相似回答