每个学生信息包括学号、姓名和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;
}