C语言程序设计报告
(二)
第一章:使用数组和指针统计成绩
1.设计题目:假设给定班级各科考试平均成绩的原始资料如下
数学:75 物理:80 外语:83 政治:85 体育:86 人数:30
要求统计出全班学期总平均成绩以及得分最低的科目和该科目的成绩。要求的输出结果如下:
全班各科平均成绩如下: 数学:75 物理:80 外语:83 政治:85 体育:86 人数:30 统计结果如下: 人数:30
平均成绩:81
最低分数科目的成绩:75 最低分数的科目:数学
2.设计要求
对存放原始数据的要求如下:
(1)、使用整形数组a数学、物理、外语、政治、体育、人数、平均成绩、最低科目成绩 ;
(2)、使用字符串数name存放数学、物理、外语、政治、体育、最低分数的科目
(3)、使用字符串数组MeanLow存放人数、平均成绩、最低分数科目的成绩、最低分数的科目。
实现本设计功能的方法很多,这里给出4种难易成度不同的要求,以便加深对数组和指针知识的理解。
1.使用数组实现
使用数组和指针数组实现。 2..使用分配的内存实现
要求将数组a的内容存入到分配的内存中,使用指针实现对内存的存取和计算。
3.将数组内容全部存入内存
为字符分配内存,并将字符数组的内容存入所分配的内存中,使用指针来实现。
源程序:
int pingjun( int *x); int zuidi(int *x);
int kemu(int *y,int n); #include int zuidi(int *x) {int t=x[0],i; for(i=0;ix[i]) t=x[i];} return t; }
int kemu(int *y,int n) {int i, t=y[0],m=0; for(i=1;i
{if(t>y[i]) {t=y[i];m++;} } return m;} int pingjun( int *x) {int sum=0 ,i,aver; for(i=0;i
void main()
{int a[9]={75,80,83,85,86,30},i,x;
char *name[5]={\"数学\",\"物理\",\"外语\",\"政治\",\"体育\"};
char *meanlow[4]={\"人数\",\"平均成绩\",\"最低分数科目成绩\",\"最低分科目\"};
printf(\"原始信息如下:\\n\"); for(i=0;i
printf(\"%s:%d\\n\",name[i],a[i]); for(i=0;i
printf(\"%s:%d\\n\",meanlow[i],a[i+5]); printf(\"全班各科平均成绩如下:\\n\"); for(i=0;i
printf(\"%s:%d\\n\",name[i],a[i]); printf(\"统计结果如下:\\n\");
printf(\"%s:%d\\n\",meanlow[0],a[5]);
printf(\"%s:%d\\n\",meanlow[1],pingjun(a)); printf(\"%s:%d\\n\",meanlow[2],zuidi(a)); x=kemu(a,5);
printf(\"%s:%s\\n\",meanlow[3],name[x]); }