#include<stdio.h> #include<malloc.h> //定义学生成绩结构体 改名为stu typedef struct student{ char ch[20]; char name[20]; int grade[3]; }stu; //程序入口main函数 int main(){ //为学生输入成绩的函数定义 void input(stu *sp,const int n); //输出学生成绩的函数 定义 void print(const stu *sp,const int n); int n=0;//n表示有多少个学生 scanf("%d",&n); //getchar()接收缓冲区的'\n'避免 对下面赋值造成影响 getchar(); //学生人数小于100人就为其赋值 if(n<100){ //向内存申请n个学生信息存储空间 stu *sp=(stu *)malloc(sizeof(stu)*n); //调用输入成绩函数 input(sp,n); //调用输出成绩函数 print(sp,n); //使用完成释放申请的空间 free(sp); return 0; } return -1; } //学生成绩输入函数的实现 void input(stu *sp,const int n){ int i=0; for(;i<n;i++){ scanf("%s%s%d%d%d",sp[i].ch,sp[i].name,&sp[i].grade[0],&sp[i].grade[1],&sp[i].grade[2]); } } //学生输出函数的实现 void print(const stu *sp,const int n){ int i=0; for(;i<n;i++){ printf("%s,%s,%d,%d,%d\n",sp[i].ch,sp[i].name,sp[i].grade[0],sp[i].grade[1],sp[i].grade[2]); } }
题目描述
现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。 编写一个函数input,用来输入一个学生的数据记录。 编写一个函数print,打印一个学生的数据记录。 在主函数调用这两个函数,读取N条记录输入,再按要求输出。 N<100
输入格式
学生数量N占一行 每个学生的学号、姓名、三科成绩占一行,空格分开。
输出格式
每个学生的学号、姓名、三科成绩占一行,逗号分开。
样例输入
2 a100 clang 70 80 90 b200 dotcpp 90 85 75样例输出
a100,clang,70,80,90 b200,dotcpp,90,85,75
C语言:[编程入门]结构体之成绩记录
最新推荐文章于 2024-03-30 19:18:11 发布