用C语言设有5名学生,参加了4门课程的考试,使用行指针方法编写程序*/ /*扫描每位同学的考试成绩,输出有一门或一门以上课程不及格的学生成绩*/
时间: 2024-03-03 19:52:45 浏览: 19
好的,这是一个比较典型的使用行指针的C语言程序,可以参考如下代码:
```c
#include <stdio.h>
#define NUM_STUDENTS 5
#define NUM_COURSES 4
int main() {
int grades[NUM_STUDENTS][NUM_COURSES];
int i, j;
// 读入每个学生的成绩
for (i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第 %d 个学生的成绩:\n", i + 1);
for (j = 0; j < NUM_COURSES; j++) {
printf("第 %d 门课程成绩:", j + 1);
scanf("%d", &grades[i][j]);
}
printf("\n");
}
// 检查每个学生的成绩是否有不及格的课程
printf("以下是不及格的学生的成绩:\n");
for (i = 0; i < NUM_STUDENTS; i++) {
int failed = 0;
for (j = 0; j < NUM_COURSES; j++) {
if (grades[i][j] < 60) {
failed = 1;
break;
}
}
if (failed) {
printf("第 %d 个学生有不及格的课程:", i + 1);
for (j = 0; j < NUM_COURSES; j++) {
printf("%d ", grades[i][j]);
}
printf("\n");
}
}
return 0;
}
```
这个程序中,我们首先定义了一个二维数组 `grades` 来存储每个学生的成绩。然后通过两重循环依次读入每个学生的成绩,同时判断是否有不及格的课程,如果有就输出该学生的成绩。其中第一重循环遍历每个学生,第二重循环遍历每个课程。注意,我们使用了一个变量 `failed` 来判断每个学生是否有不及格的课程,如果有就将它设为 1,然后跳出循环。最后,如果 `failed` 的值为 1,也就是该学生有不及格的课程,我们就输出该学生的成绩。