使用指针和函数的方式,查询自己的成绩。从键盘输入3位学生4门课程的成绩,输入学号,即可查询到自己各门课程的成绩。c语言
时间: 2024-03-16 14:46:58 浏览: 75
好的,可以使用指针和函数实现。以下是一个示例代码:
```c
#include <stdio.h>
#define STUDENTS_NUM 3
#define SUBJECTS_NUM 4
void input_scores(int *scores);
void query_score(int *scores, int id);
int main() {
int scores[STUDENTS_NUM][SUBJECTS_NUM];
int id;
printf("请输入3位学生4门课程的成绩:\n");
for (int i = 0; i < STUDENTS_NUM; i++) {
input_scores(scores[i]);
}
printf("请输入学号:");
scanf("%d", &id);
query_score(&scores[0][0], id);
return 0;
}
void input_scores(int *scores) {
for (int i = 0; i < SUBJECTS_NUM; i++) {
scanf("%d", scores + i);
}
}
void query_score(int *scores, int id) {
if (id < 1 || id > STUDENTS_NUM) {
printf("该学号不存在!\n");
return;
}
printf("学号:%d\n", id);
printf("语文:%d,数学:%d,英语:%d,物理:%d\n",
*(scores + (id - 1) * SUBJECTS_NUM),
*(scores + (id - 1) * SUBJECTS_NUM + 1),
*(scores + (id - 1) * SUBJECTS_NUM + 2),
*(scores + (id - 1) * SUBJECTS_NUM + 3));
}
```
这里定义了两个函数,`input_scores`用于输入学生成绩,`query_score`用于查询学生成绩。`input_scores`中使用指针传递数组,并使用指针+下标的方式访问数组元素;`query_score`中同样使用指针传递数组,并根据学号计算对应学生在数组中的位置,再访问对应的成绩。
阅读全文