每个学生信息包括学号、姓名和3门课程的成绩,共有10名学生。在主函数中输入学生信息,自定义myIn( ) 函数实现输入学生的所有信息,myOut( ) 函数实现打印学生的所有信息。

每个学生信息包括学号、姓名和3门课程的成绩,共有10名学生。在主函数中输入学生信息,自定义myIn( ) 函数实现输入学生的所有信息,myOut( ) 函数实现打印学生的所有信息。

可以定义学生结构存储学生的信息,然后学生信息结构数组来存储10个学生的信息。

代码如下:



#include <stdio.h>
#define N 3  // 测试程序时,输入输出3个学生的信息,实际运行可以改为10 

struct stu{
    
    int sid;  // 学号 
    char name[20];  // 姓名 
    int scores[3];  //存储3门成绩的int数组 
}; 

void myln(struct stu * stus,int num){  //存储num个学生信息到 学生结构指针stus指向的位置 
    
    int i;
    for(i=0;i<num;i++){
        
        printf("请输入第%d名学生的姓名:",i+1);
        scanf("%s",stus[i].name);
        
        printf("请输入第%d名学生的学号:",i+1);
        scanf("%d",&stus[i].sid);
            
        
        for(int j=0;j<3;j++){
            printf("请输入第%d名学生第%d门功课的成绩:",i+1,j+1);
            scanf("%d",&stus[i].scores[j]);
        }
        printf("\n");
    }
    
    
    
    
}

void myOut(struct stu * stus,int num){  // 输出学生结构指针指向的内存存储的num个学生的信息 
    
    int i;
    for(i=0;i<num;i++){
        printf("第%d名学生信息: 学号:%d, 姓名:%s, 成绩: ",i+1,stus[i].sid,stus[i].name);

        for(int j=0;j<3;j++){
            printf("%d ",stus[i].scores[j]);
        }
        printf("\n");
    }
    
}

int main(void){
    
    struct stu stus[N]; //存储N个学生信息的结构数组 
    myln(stus,N);  // 调用myln函数,存储学生信息 
    myOut(stus,N);  // 调用myOut函数,打印学生信息 
    
    return 0;
    
    
}

img