谭浩强教授《C程序设计题解与上机指导(第二版)》习题10.15
2009-07-29 22:07
302 查看
有一个班,有4名学生、5门课程。(1)求第一门课的平均分;(2)找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均分;(3)找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
#include <stdio.h> #include <string.h> main() { void avsco(); void avcour(); void fail2(); void good(); int i,j,*pnum,num[4]; float score[4][5],aver[4],*psco,*pave; char course[5][10],*pcou; printf("Input course:/n"); pcou=course[0]; for(i=0;i<5;i++) scanf("%s",course[i]);//输入科目名 printf("Input NO. and score:/n"); printf("NO."); for(i=0;i<5;i++) printf(", %s",course);//输出科目名 printf("/n"); psco=&score[0][0];//把二维数组score[4][5]的首列地址赋给指向float型数据的指针变量psco pnum=&num[0];//使指向整型数据的指针变量指向一维整型数组num[4]的首地址 for(i=0;i<4;i++) { scanf("%d",pnum+i);//输入学号 for(j=0;j<5;j++) scanf("%f",psco+i*5+j);//按列输入各科目的成绩 } pave=&aver[0]; printf("/n/n"); avsco(psco,pave);//函数调用,求每个学生的平均成绩 avcour(pcou,psco);//函数调用,求第1门科目的平均分 printf("/n/n"); fail2(pcou,pnum,psco,pave);//函数调用,//找出有2门以上科目不及格的学生 printf("/n/n"); good(pcou,pnum,psco,pave);//函数调用,//找出各科成绩在85分以上或平均成绩在90分以上的学生 } void avsco(float *psco,float *pave)//求每个学生的平均成绩 { int i,j; float sum,average; for(i=0;i<4;i++) { sum=0.0; for(j=0;j<5;j++) sum=sum+(*(psco+i*5+j)); average=(float)(sum/5.0); pave[i]=average; } } void avcour(char *pcou,float *psco)//求第1门科目的平均分 { int i; float sum,average; sum=0.0; for(i=0;i<4;i++) sum=sum+(*(psco+i*5));//因为psco指向的是列,所以psco+i*5表示每个学生的第1门科目的地址 average=(float)(sum/4.0); printf("course 1:%s, average score:%6.2f./n",pcou,average); } void fail2(char course[][10],int num[],float score[4][5],float aver[4])//找出有2门以上科目不及格的学生 { int i,j,k,label; printf("==============================Student who is fail==============================/n"); printf("NO."); for(i=0;i<5;i++) printf("%10s",course[i]); printf("average/n"); for(i=0;i<4;i++) { label=0; for(j=0;j<5;j++) if((score[i][j]<60.0)) label++; if(label>=2) { printf("%5d",num[i]); for(k=0;k<5;k++) printf("%10.2f",score[i][k]); printf("%10.2f",aver[i]); } } } void good(char course[5][10],int num[4],float score[4][5],float aver[4])//找出各科成绩在85分以上或平均成绩在90分以上的学生 { int i,j,k,n; printf("====================Student whose score is good==========/n"); printf("NO."); for(i=0;i<5;i++) printf("%10s",course[i]); printf("average/n"); for(i=0;i<4;i++) { n=0; for(j=0;j<5;j++) if(score[i][j]>85.0) n++; if((n==5)||(aver[i])>=90) { printf("%5d",num[i]); for(k=0;k<5;k++) printf("%10.2f",score[i][k]); printf("%10.2f/n",aver[i]); } } }
相关文章推荐
- 改谭浩强教授《C程序设计题解与上机指导(第二版)》习题10.3
- 改谭浩强教授《C程序设计题解与上机指导(第二版)》习题10.2
- 改谭浩强教授《C程序设计题解与上机指导(第二版)》习题10.14
- 谭浩强著《C程序设计(第二版)》习题13.5
- C++程序设计(第二版)谭浩强----程序题课后习题答案第二章
- C++程序设计(第二版)谭浩强----程序题课后习题答案第一章
- 谭浩强著《C程序设计(第二版)》习题13.6
- C语言课后习题编程答案(谭浩强第二版)
- C++程序设计 谭浩强 第二版 习题4.11
- C++程序设计(第二版)谭浩强----程序题课后习题答案第三章
- 算法竞赛入门经典 第二版 习题9-1最长滑雪路径 Longest Run on a Snowboard uva10285
- C程序设计(第二版 新版)第六章 习题
- C程序设计(第二版 新版)第二章 习题
- C程序设计(第二版 新版)第三章 习题
- 【深入理解计算机系统-第二版】3.66习题
- 算法导论第二版 习题2.1-4答案
- C程序设计(第二版 新版)第五章 习题
- 算法竞赛入门经典 第二版 习题5-5 复合词 Compound Words uva10391
- 算法竞赛入门经典 第二版 习题5-9 找bug Bug Hunt uva1596
- python核心编程(第二版) 课后习题