qfedu-c-level/day6/homework/h4.c

59 lines
1.9 KiB
C
Raw Normal View History

2023-07-11 01:33:28 +08:00
// 编写程序扩展第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;
}