解题思路:
透过题意看本质,这题其实就是数组的输入与输出
只不过数组里放得是结构体
定义一个结构体,里面储存这学号,名字,与三科成绩
输入学生个数 n ,然后定义一个大小为 n 的结构体数组,方法和普通的数组相同
假如结构体名为 stu ,那么定义一个大小为 n 的数组只需要这样:
stu a[n]; //定义学生数组a
顺便一提,同类型结构体之间是可以直接赋值的
比如 stuA = stuB 就是把学生B中的元素赋值给学生A,而且不会有副作用
之后有结构体排序的题时就可以用到了
参考代码:
#include <stdio.h> struct stu //定义结构体stu { char id[101]; //学号 char name[101]; //名字 int score[3]; //分数,也可用三个int变量 }; void myInput(stu a[], int n) //输入函数,a为学生数组,n为个数 { for (int i = 0; i < n; i++) //循环n次输入 { scanf("%s %s %d %d %d", a[i].id, a[i].name, &a[i].score[0], &a[i].score[1], &a[i].score[2]); } } void myOutput(stu a[], int n) //输出函数 { for (int i = 0; i < n; i++) //循环n次输出 { printf("%s,%s,%d,%d,%d\n", a[i].id, a[i].name, a[i].score[0], a[i].score[1], a[i].score[2]); } } int main() { int n; scanf("%d", &n); stu a[n]; //定义学生数组 myInput(a, n); //调用输入 myOutput(a, n); //调用输出 return 0; }
0.0分
16 人评分
都提交不了,别乱写了
刷题永不止 2022-08-25 10:02:28 |
字符数组不能这样赋值的
CodeRookie 2022-09-28 15:18:56 |
C提交不了怎么不用C++试试