求一道C语言程序题

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:29:31
设某班50名学生的三科成绩表如下:

课程一 课程二 课程三

...... ...... ......

编写一个程序,输入这50个学生的三科成绩,计算并输出每科成绩的平均分。

设计步骤与要求(实验指导书上给的):

1.可先按3个学生3门课成绩设计,通过后再改成50个学生;

2.先将3个学生3门课的成绩通过scanf函数送入字符数组score;

3.求出3个学生每门课程的总成绩,放入s一维数组中;

4.求出每门课程的平均成绩并输出。
我个人也觉的那个实验指导是有问题的

score怎么会是字符数组呢?什么分制?我写的以下是百分制的
void main()
{
int n,m;
float score[3][3],s[3]; /*该一下score[50][3]*/
for(n=0;n<3;n++)
{ printf("Please input the No.%d student'score:",n+1);
for(m=0;m<3;m++)
{scanf("%f",&score[n][m]);
s[m]+=score[n][m];
}
printf("\n");
}
printf("The average score 1-3:%f %f %f\n",s[0]/3,s[1]/3,s[2]/3);
}

我个人觉得你的指导有点问题,2.先将3个学生3门课的成绩通过scanf函数送入字符数组score; ------怎么是一个字符数组呢?
还有你的知道也不怎么好,如果用一个结构体数组是不是更好一些?
下面是我写的,给你参考一下(编译通过,运行没问题)

#include<stdio.h>
const int NUM=3;/*先只弄3个测试一下,程序正确就改成 50 */
typedef struct{
int course1;
int course2;
int course3;
}COURSE;/*用一个结构体层次结构是不是更好一些? */
int main()
{
COURSE arr[NUM];
int i;
double sum1=0.0;
double sum2=0.0;
double sum3=0.0;
printf("Now please inpu