关于#c语言#的问题:用指向数组的指针变量实现

有若干个学生的成绩(每个学生有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; 
} 

img