// 编写程序,扩展第3题,为10位学生输入姓名和课程名,输出学生名和总成绩、课程名和平均成绩 。 #include #include #include #include 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; }