59 lines
1.9 KiB
C
59 lines
1.9 KiB
C
|
// 编写程序,扩展第3题,为10位学生输入姓名和课程名,输出学生名和总成绩、课程名和平均成绩 。
|
|||
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
#include <time.h>
|
|||
|
#include <string.h>
|
|||
|
|
|||
|
const int stuNum = 10; // 定义学生数
|
|||
|
const int courseNum = 3; // 定义课程数
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
char stuNames[stuNum][20]; // 学生姓名数组
|
|||
|
char courseNames[courseNum][20]; // 课程名数组
|
|||
|
float stuScores[stuNum][courseNum]; // 学生成绩数组
|
|||
|
float sumScores[stuNum]; // 每位学生总成绩
|
|||
|
float avgScores[courseNum]; // 每门课程平均成绩
|
|||
|
|
|||
|
// printf("生成随机成绩");
|
|||
|
srand(time(NULL)); // 随机种子
|
|||
|
for (int i = 0; i < stuNum; i++)
|
|||
|
{
|
|||
|
printf("请输入第 %d 位学生的姓名: ", i + 1);
|
|||
|
fgets(stuNames[i], sizeof(stuNames[i]), stdin);
|
|||
|
stuNames[i][strlen(stuNames[i]) - 1] = '\0'; // 消除结尾的换行
|
|||
|
for (int j = 0; j < courseNum; j++)
|
|||
|
{
|
|||
|
printf("请输入课程名: ");
|
|||
|
fgets(courseNames[j], sizeof(courseNames[j]), stdin);
|
|||
|
courseNames[j][strlen(courseNames[j]) - 1] = '\0';
|
|||
|
float tempRandScore = rand() % 101;
|
|||
|
stuScores[i][j] = tempRandScore;
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n");
|
|||
|
|
|||
|
// printf("每位学生的总成绩为: ");
|
|||
|
for (int i = 0; i < stuNum; i++)
|
|||
|
{
|
|||
|
for (int j = 0; j < courseNum; j++)
|
|||
|
{
|
|||
|
sumScores[i] += stuScores[i][j];
|
|||
|
}
|
|||
|
printf("%s 的总成绩为: %.1f\n", stuNames[i], sumScores[i]);
|
|||
|
}
|
|||
|
printf("\n");
|
|||
|
|
|||
|
// printf("每门课程的平均成绩为: ");
|
|||
|
for (int i = 0; i < courseNum; i++)
|
|||
|
{
|
|||
|
for (int j = 0; j < stuNum; j++)
|
|||
|
{
|
|||
|
avgScores[i] += stuScores[j][i] / stuNum;
|
|||
|
}
|
|||
|
printf("%s 课的平均成绩为: %.1f\n", courseNames[i], avgScores[i]);
|
|||
|
}
|
|||
|
printf("\n");
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|