请用c语言写下列程序:用动态数组编程输入任意m个班学生(每班n个学生)的某门课的成绩,计算最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。其中,m和n的值由用户从键盘任意输入(不限定m和n的上限值)。 输入提示信息: "Input array size m,n:" "Input %d*%d array:\n" 输入m,n的格式:"%d,%d" 输入成绩的格式:"%d" 输出提示信息和格式:"maxScore = %d, class = %d, number = %d\n" 输入: Input array size m,n:2,3 Input 2*3 array:↙ 90 69 88 97 95 95 maxScore = 97, class = 2, number = 1↙
时间: 2024-02-27 08:52:12 浏览: 52
好的,以下是使用C语言编写的代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int m, n;
printf("Input array size m,n:");
scanf("%d,%d", &m, &n);
// 创建二维动态数组
int** scores = (int**)malloc(m * sizeof(int*));
for (int i = 0; i < m; i++) {
scores[i] = (int*)malloc(n * sizeof(int));
}
// 输入成绩
printf("Input %d*%d array:\n", m, n);
int maxScore = -1, classNum = -1, studentNum = -1;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &scores[i][j]);
// 更新最高分和学生信息
if (scores[i][j] > maxScore) {
maxScore = scores[i][j];
classNum = i + 1;
studentNum = j + 1;
}
}
}
// 输出结果
printf("maxScore = %d, class = %d, number = %d\n", maxScore, classNum, studentNum);
// 释放动态数组
for (int i = 0; i < m; i++) {
free(scores[i]);
}
free(scores);
return 0;
}
```
您可以将以上代码复制并粘贴到您的C编译器中进行测试。
阅读全文