有一个班,四个学生,各学三门课,计算总平均分以及输出第n个学生的成绩。用c语言指针
时间: 2023-09-10 18:15:28 浏览: 135
求某个学生的平均值-c指针与数组
下面是一个示例代码,其中用指针指向学生和课程成绩,计算总平均分和输出第n个学生的成绩:
```c
#include<stdio.h>
#define N 4 // 学生数
#define M 3 // 课程数
int main() {
int i, j, n;
float sum = 0.0, avg; // 总成绩和平均成绩
int score[N][M]; // 存储学生和课程成绩
int *p_score; // 指向学生和课程成绩的指针
// 输入学生和课程成绩
printf("请输入%d个学生的%d门课成绩:\n", N, M);
for (i = 0; i < N; i++) {
printf("请输入第%d个学生的%d门课成绩:\n", i + 1, M);
for (j = 0; j < M; j++) {
scanf("%d", &score[i][j]);
}
}
// 计算总平均分
p_score = &score[0][0];
for (i = 0; i < N * M; i++) {
sum += *(p_score + i);
}
avg = sum / (N * M);
printf("总平均分为:%.2f\n", avg);
// 输出第n个学生的成绩
printf("请输入要查询的学生编号(1 ~ %d):\n", N);
scanf("%d", &n);
if (n < 1 || n > N) {
printf("输入的学生编号有误!\n");
}
else {
printf("第%d个学生的成绩为:", n);
for (j = 0; j < M; j++) {
printf("%d ", score[n - 1][j]);
}
printf("\n");
}
return 0;
}
```
在上述代码中,用一个二维数组 `score` 存储学生和课程成绩,同时也声明一个指向该数组的指针 `p_score`,用来计算总平均分。计算总平均分时,用指针遍历数组的所有元素,并累加每个元素的值。输出第n个学生的成绩时,需要先判断输入的编号是否合法,然后直接输出对应学生的成绩即可。
阅读全文