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;
|
||
} |