输入5个学生4门功课的成绩,输出不及格学生的学号和全部成绩。(用函数和指针实现)
时间: 2024-03-01 15:54:42 浏览: 73
好的,我可以为您提供该问题的代码实现,如下所示:
```c
#include <stdio.h>
#define N 5 // 学生数量
#define M 4 // 课程数量
void fail(int (*p)[M], int n, int *sum); // 函数声明
int main()
{
int score[N][M]; // 学生成绩矩阵
int sum[N]; // 每个学生总成绩
int *p_sum = sum; // 指向总成绩数组的指针
int i, j;
// 输入学生成绩
for (i = 0; i < N; i++) {
printf("请输入第%d个学生的成绩:\n", i+1);
for (j = 0; j < M; j++) {
scanf("%d", &score[i][j]);
}
}
// 统计每个学生的总成绩
for (i = 0; i < N; i++) {
*(p_sum + i) = 0;
for (j = 0; j < M; j++) {
*(p_sum + i) += score[i][j];
}
}
// 输出不及格学生的学号和全部成绩
fail(score, N, p_sum);
return 0;
}
void fail(int (*p)[M], int n, int *sum)
{
int i, j;
int flag = 0; // 判断是否有不及格学生
for (i = 0; i < n; i++) {
for (j = 0; j < M; j++) {
if (*(*(p+i)+j) < 60) { // 不及格判断
flag = 1;
printf("学生%d:", i+1);
for (j = 0; j < M; j++) {
printf("%d ", *(*(p+i)+j));
}
printf("总成绩:%d\n", *(sum+i));
break; // 一门不及格即为不及格
}
}
}
if (flag == 0) {
printf("无不及格学生。\n");
}
}
```
该程序通过指针实现了对学生成绩的统计和输出不及格学生的学号和全部成绩。请注意:该程序只是一个简单的示例,可能并不具有实际应用价值,仅供参考。
阅读全文