C语言实现已知m个人n门课的成绩,请利用二维数组编程求每个人的平均成绩。
时间: 2023-05-14 21:05:40 浏览: 177
可以使用以下代码实现:
```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类型,以便计算平均值。
相关问题
已知有如下宏定义:#define N 10,定义一个N×N的二维数组,再从键盘输入一个整数n (n<N),用数组编程输出n×n的杨辉三角形
以下是一个C语言代码示例,用于定义一个N×N的二维数组,再从键盘输入一个整数n,用数组编程输出n×n的杨辉三角形:
```c
#include <stdio.h>
#define N 10
int main() {
int n;
int arr[N][N] = {0};
printf("请输入一个小于%d的整数:", N);
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
arr[i][j] = 1;
} else {
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
以上代码中,我们首先定义了一个N×N的二维数组arr,用于存储杨辉三角形中的每个数字。然后,我们从键盘上输入一个小于N的整数n,表示要输出的杨辉三角形的行数。接着,我们使用两个for循环语句来遍历二维数组中的每个元素,并计算出杨辉三角形中该元素所对应的值。具体来说,我们使用if-else语句来判断当前元素是否为该行的两个端点,如果是,则将其值赋为1;否则,将其值赋为上一行相邻两个元素的和。在每个元素的计算过程中,我们都会将其值输出,并在每行输出完毕后再换行。最终,我们就可以输出一个n×n的杨辉三角形了。
阅读全文