C语言实现已知m个人n门课的成绩,请利用二维数组编程求每个人的平均成绩。
时间: 2023-05-14 09:05:40 浏览: 126
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int m, n;
printf("请输入人数m和课程数n:");
scanf("%d %d", &m, &n);
int scores[m][n];
for (int i = 0; i < m; i++) {
printf("请输入第%d个人的%d门课成绩:", i + 1, n);
for (int j = 0; j < n; j++) {
scanf("%d", &scores[i][j]);
}
}
for (int i = 0; i < m; i++) {
int sum = 0;
for (int j = 0; j < n; j++) {
sum += scores[i][j];
}
printf("第%d个人的平均成绩为%.2f\n", i + 1, (float)sum / n);
}
return 0;
}
```
这个程序会先让用户输入人数m和课程数n,然后使用二维数组scores存储每个人的成绩。接着,程序会计算每个人的平均成绩,并输出结果。注意,这里使用了强制类型转换将sum转换为float类型,以便计算平均值。
相关问题
有M名学生,学习N门课程,已知所有学生的各科成绩,采用二维数组编程,分别求每位学生的总分和每门课程的平均成绩 c语言
好的,针对你的问题,你可以这样编写代码:
```c
#include <stdio.h>
int main() {
// 假设有 3 名学生和 4 门课程
int M = 3;
int N = 4;
// 假设学生成绩如下
int scores[3][4] = {
{80, 90, 70, 85},
{75, 85, 95, 70},
{90, 80, 75, 80}
};
// 计算每位学生的总分和每门课程的平均成绩
int total_scores[3] = {0};
int avg_scores[4] = {0};
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
total_scores[i] += scores[i][j];
avg_scores[j] += scores[i][j];
}
}
for (int i = 0; i < M; i++) {
printf("第 %d 位学生的总分为:%d\n", i + 1, total_scores[i]);
}
for (int j = 0; j < N; j++) {
printf("第 %d 门课程的平均成绩为:%d\n", j + 1, avg_scores[j] / M);
}
return 0;
}
```
这段代码首先定义了学生数目和课程数目,以及学生成绩的二维数组。然后使用 for 循环计算每位学生的总分和每门课程的总分,最后用总分除以人数得到平均成绩。最后输出结果。需要注意的是,C 语言中的数组下标从 0 开始,因此在输出结果时需要将下标加 1。
c语言,二维数组五门课程,3门课的成绩,求平均成绩代码
### 回答1:
好的,以下是求解平均成绩的C语言代码:
```c
#include <stdio.h>
int main() {
int scores[5][3] = {{80, 75, 90}, {85, 90, 80}, {95, 85, 75}, {70, 80, 90}, {90, 75, 80}};
float avg[5];
for(int i=0; i<5; i++) {
float sum = 0;
for(int j=0; j<3; j++) {
sum += scores[i][j];
}
avg[i] = sum / 3;
printf("第%d门课程的平均成绩为: %.2f\n", i+1, avg[i]);
}
return 0;
}
```
这个程序中,我们定义了一个二维数组scores来存储五个学生的三门课程成绩,然后使用两个for循环来计算每个学生的平均成绩并存储在avg数组中,最后打印出每门课程的平均成绩。
### 回答2:
假设二维数组的名称为grades,包含五门课程的成绩信息。由于题目所给的信息是每门课程有三个成绩,因此二维数组的大小是5行3列。以下是求平均成绩的C语言代码:
```c
#include <stdio.h>
int main() {
float grades[5][3]; // 定义二维数组,存储五门课程的成绩
float average[5]; // 定义一维数组,存储平均成绩
int i, j;
// 输入成绩
for (i = 0; i < 5; i++) {
printf("请输入第%d门课程的三个成绩:\n", i + 1);
for (j = 0; j < 3; j++) {
scanf("%f", &grades[i][j]);
}
}
// 求平均成绩
for (i = 0; i < 5; i++) {
float sum = 0;
for (j = 0; j < 3; j++) {
sum += grades[i][j];
}
average[i] = sum / 3;
}
// 输出平均成绩
printf("五门课程的平均成绩为:\n");
for (i = 0; i < 5; i++) {
printf("第%d门课程的平均成绩为%f\n", i + 1, average[i]);
}
return 0;
}
```
以上代码使用嵌套的循环来输入成绩和求平均成绩,并通过两个数组`grades`和`average`来保存成绩信息和平均成绩。最后通过循环输出每门课程的平均成绩。
### 回答3:
下面是求解平均成绩的C语言代码:
```c
#include <stdio.h>
int main() {
int scores[5][3]; // 二维数组存放五门课程的成绩
float average_scores[3]; // 存放平均成绩的一维数组
// 输入各门课程的成绩
printf("请输入五门课程的成绩:\n");
for(int i=0; i<5; i++) {
printf("请输入第%d门课程的成绩:\n", i+1);
for(int j=0; j<3; j++) {
scanf("%d", &scores[i][j]);
}
}
// 计算平均成绩
for(int j=0; j<3; j++) {
int sum = 0;
for(int i=0; i<5; i++) {
sum += scores[i][j];
}
average_scores[j] = sum / 5.0; // 平均成绩等于总分除以课程数
}
// 输出平均成绩
printf("各门课程的平均成绩分别为:\n");
for(int j=0; j<3; j++) {
printf("第%d门课程的平均成绩为%.2f\n", j+1, average_scores[j]);
}
return 0;
}
```
在上述代码中,我们创建了一个二维数组`scores`来存放五门课程的成绩,其中每一行代表一门课程的成绩,每一列代表不同的学生。接下来,我们创建了一个一维数组`average_scores`来存放每门课程的平均成绩。然后,通过嵌套循环来输入每门课程的成绩,并使用第二个循环来计算每门课程的总分,然后除以课程数得到平均成绩。最后,使用循环来输出每门课程的平均成绩。