怎么用二维数组存放n个学生m门课程的成绩
时间: 2023-03-19 17:21:31 浏览: 133
可以使用一个 n 行 m 列的二维数组来存放 n 个学生 m 门课程的成绩。其中,数组的每一行代表一个学生的成绩,每一列代表一门课程的成绩。
例如,可以定义一个二维数组 score,其大小为 n 行 m 列,如下所示:
```
int score[n][m];
```
然后,可以使用嵌套的 for 循环来输入或输出学生成绩。例如,下面的代码片段展示了如何输入 n 个学生 m 门课程的成绩:
```
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << "请输入第 " << i+1 << " 个学生的第 " << j+1 << " 门课程的成绩:";
cin >> score[i][j];
}
}
```
同样地,可以使用嵌套的 for 循环来输出 n 个学生 m 门课程的成绩,例如:
```
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << "第 " << i+1 << " 个学生的第 " << j+1 << " 门课程的成绩为:" << score[i][j] << endl;
}
}
```
相关问题
使用二维数组存放学生成绩,求每个学生的平均分
假设学生人数为 n,科目数为 m,可以定义一个 n 行 m 列的二维数组来存放学生成绩。假设数组名为 scores。
求每个学生的平均分,可以按照以下步骤进行:
1. 遍历每个学生的成绩,计算每个学生的总分。
2. 用每个学生的总分除以科目数,求出每个学生的平均分。
3. 将每个学生的平均分存放到一个一维数组中。
下面是一个示例代码:
```c
#include <stdio.h>
#define MAX_STUDENTS 100
#define MAX_SUBJECTS 10
int main() {
int n, m;
double scores[MAX_STUDENTS][MAX_SUBJECTS];
double avg[MAX_STUDENTS];
printf("请输入学生人数和科目数:");
scanf("%d %d", &n, &m);
// 输入学生成绩
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的%d门成绩:", i + 1, m);
for (int j = 0; j < m; j++) {
scanf("%lf", &scores[i][j]);
}
}
// 计算每个学生的平均分
for (int i = 0; i < n; i++) {
double sum = 0;
for (int j = 0; j < m; j++) {
sum += scores[i][j];
}
avg[i] = sum / m;
}
// 输出每个学生的平均分
for (int i = 0; i < n; i++) {
printf("第%d个学生的平均分为:%.2f\n", i + 1, avg[i]);
}
return 0;
}
```
在这个示例代码中,我们定义了一个 MAX_STUDENTS × MAX_SUBJECTS 的二维数组 scores 来存放学生成绩,以及一个 MAX_STUDENTS 大小的一维数组 avg 来存放每个学生的平均分。在输入学生成绩后,我们遍历每个学生的成绩,计算每个学生的总分,并用每个学生的总分除以科目数,求出每个学生的平均分,最后输出每个学生的平均分。注意,这里使用了 double 类型来存放成绩和平均分,以保证精度。
用c语言定义数组存放3个学生4门课程的成绩,并用冒泡法升序排列成绩
以下是用C语言定义一个二维数组存储3个学生4门课程成绩,并使用冒泡排序法升序排列成绩的示例代码:
```
#include <stdio.h>
int main() {
float grades[3][4] = { {80.5, 75.0, 92.3, 87.2},
{65.4, 90.1, 88.7, 75.6},
{72.8, 81.2, 77.5, 69.3} };
int i, j, k;
float temp;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3-i; j++) {
for (k = 0; k < 4; k++) {
if (grades[j][k] > grades[j+1][k]) {
temp = grades[j][k];
grades[j][k] = grades[j+1][k];
grades[j+1][k] = temp;
}
}
}
}
printf("升序排列后的成绩为:\n");
for (i = 0; i < 3; i++) {
printf("学生%d:", i+1);
for (j = 0; j < 4; j++) {
printf("%.1f ", grades[i][j]);
}
printf("\n");
}
return 0;
}
```
在上面的代码中,我们首先定义了一个3行4列的二维数组`grades`,用于存放3个学生4门课程的成绩。然后使用三重循环,对成绩进行冒泡排序,最后输出升序排列后的成绩。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)