有若干个学生的成绩(每个学生有4门课程),要求在用户输入学生序号以后,能输出该学生的全部成绩。用指向数组的指针变量实现
一个实现,供参考:
#include <stdio.h>
#define NUM 3
struct student{ //存放四门功课成绩的学生结构
double chinese;
double math;
double english;
double music;
};
int main(void){
student s[NUM]; //定义存放NUM个学生成绩的数组
int i;
//获取NUM个学生的成绩
for(i=0;i<NUM;i++){
printf("请输入第%d个学生的成绩(顺序:语文、数学、英语、音乐)\n",i+1);
scanf("%lf%lf%lf%lf",&s[i].chinese,&s[i].math,&s[i].english,&s[i].music);
}
student * sp = s; //指向NUM个学生成绩的数组的指针
int index;
printf("请输入要查询的学生的序号:");
scanf("%d",&index); //获取要查询学生成绩的序号
//打印 指定序号学生的成绩,因为数组的下标从0开始,所以第index个学生的成绩存放在数组下标为index-1的元素中
printf("第%d个学生的成绩是:语文:%.2lf, 数学:%.2lf, 英语:%.2lf, 音乐:%.2lf.\n",
index,sp[index-1].chinese,sp[index-1].math,sp[index-1].english,sp[index-1].music);
return 0;
}