第一个图中的都在主函数中实现了。
第二张图中的要求也做出了修改,代码中有注释,你应该能看明白,具体如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
#include <stdlib.h>
#define STU 60 //最多的学生人数
#define COURSE 3 //考试科目数
//输入n个学生的3门课成绩
void input(int score[][COURSE],int n)
{
//1.键盘输入方法
for (int i = 0; i < n; i++)
{
printf("请输入第%d名学生的成绩:",i+1);
for (int j = 0; j < COURSE; j++)
{
scanf("%d",&score[i][j]);
}
//scanf("%d %d %d",&score[i][0],&score[i][1],&score[i][2]);
}
//2.随机生成成绩
/*for (int i = 0; i < n; i++)
{
for (int j = 0; j < COURSE; j++)
score[i][j] = rand()%100;
}*/
}
//需要输入学号时
void input_2(int num[],int score[][COURSE],int n)
{
//1.键盘输入方法
for (int i = 0; i < n; i++)
{
printf("请输入第%d名学生的学号和成绩:",i+1);
scanf("%d",&num[i]);
for (int j = 0; j < COURSE; j++)
{
scanf("%d",&score[i][j]);
}
//scanf("%d %d %d",&score[i][0],&score[i][1],&score[i][2]);
}
//2.随机生成成绩
/*for (int i = 0; i < n; i++)
{
num[i] = i+1;
for (int j = 0; j < COURSE; j++)
score[i][j] = rand()%100;
}*/
}
//当学生人数未知时
void input_3(int num[],int score[][COURSE],int &n)
{
n = 0;
while(true)
{
printf("请输入第%d名学生的学号和成绩:",n+1);
scanf("%d",&num[n]);
if (num[n] < 0)
{
break;
}
for (int j = 0; j < COURSE; j++)
{
scanf("%d",&score[n][j]);
}
n++;
}
}
//计算每个学生的平均分
void averforstu(int score[][COURSE],float aver[],int n)
{
for (int i = 0; i < n; i++)
{
int sum = 0;
for (int j = 0;j < COURSE;j++)
{
sum += score[i][j];
}
aver[i] = sum;
}
}
//输出n个学生的3门课成绩和个人平均分
void output(int score[][COURSE],float aver[],int n)
{
printf(" 程序设计 英语 数学 平均分\n");
for (int i = 0; i < n; i++)
{
printf("第%d个学生 %d %d %d %.2f\n",i+1,score[i][0],score[i][1],score[i][2],aver[i]);
}
}
int main()
{
int score[STU][COURSE];
float aver[STU];
float averC[COURSE]; //每门课的平均分
int num[STU]; //存储学生的学号
int n = 3; //学生人数
//(1)
input(score,n);
//(2)
averforstu(score,aver,n);
//(3)
output(score,aver,n);
//计算每门课的平均分
for (int i = 0; i < COURSE; i++)
{
averC[i] = 0.0;
for (int j = 0; j < n; j++)
{
averC[i] += score[i][j];
}
averC[i] = averC[i] / COURSE;
}
//如果需要输入学生的学号,input函数需要修改一下,增加一个参数
//void input_2(int num[],int score[][COURSE],int n);
//学号录入用%d即可
//当学生人数未知时,input修改如下
//void input_3(int num[],int score[][COURSE],int &n);
getchar();
getchar();
return 0;
}