定义一个结构体类型,其成员包括:学号、姓名、性别(char型)、年龄、籍贯、入学年份、所在学院。利用学生信息的结构体数组,编写输入函数input( )实现从键盘输入数据赋给数组,编写输出函数output( )逐行输出每个学生的信息的函数。
函数接口定义:
void input(student stu[],int n);
void output(student stu[],int n);
其中stu
和n
都是用户传入的参数。 stu[]
是创建的学生信息; n
是学生的总人数。
裁判测试程序样例:
#include
#include
#include
#define N 1000 //学生可能达到的最大长度
typedef struct student
{
int num; //学号
char name[20]; //姓名
char sex; //性别(char型,f表示女,m表示男)
int age; //年龄
char province[20];//籍贯
int year;//入学年份
char depart[20];//所在学院
}student;
void input(student stu[],int n);//学生信息输入函数
void output(student stu[],int n);//学生信息输出函数
int main()
{
student stu[N];
int n;
scanf("%d",&n);//输入学生人数
if (n>N) {printf("overflow!");return 0;}
input(stu,n);
output(stu,n);
return 0;
}
/* 请在这里填写答案 */
输入样例:
第一行输入学生的个数n的值,后续输入n行学生的信息(学号、姓名、性别、年龄、籍贯、入学年份、所在学院),每个学生信息占一行,学号、姓名、性别、年龄、籍贯、入学年份、所在系用空格分隔,所在系之后没有空格。
5
1001 Jack f 20 湖北 2019 理学院
1002 Sam m 19 江西 2019 信息学院
1003 Marry f 21 湖南 2019 外语学院
1004 David m 20 安徽 2019 资环学院
1005 Susan f 21 广西 2019 计算机学院
输出样例:
总计n行,显示 n个学生的信息(学号、姓名、性别、年龄、籍贯、入学年份、所在学院),每个学生信息占一行,学号、姓名、性别、年龄、籍贯、入学年份、所在系用空格分隔。
1001 Jack f 20 湖北 2019 理学院
1002 Sam m 19 江西 2019 信息学院
1003 Marry f 21 湖南 2019 外语学院
1004 David m 20 安徽 2019 资环学院
1005 Susan f 21 广西 2019 计算机学院
代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
void input(student stu[], int n)
{
for (int i = 0; i < n; i++)
{
scanf("%d %s %c %d %s %d %s",
&stu[i].num,
stu[i].name,
&stu[i].sex,
&stu[i].age,
stu[i].province,
&stu[i].year,
stu[i].depart);
}
}
void output(student stu[], int n)
{
for (int i = 0; i < n; i++)
{
printf("%d %s %c %d %s %d %s\n",
stu[i].num,
stu[i].name,
stu[i].sex,
stu[i].age,
stu[i].province,
stu[i].year,
stu[i].depart);
}
}
需要注意的地方是stu做结构体的名字,输入输出需要使用一个循环将所有的信息包括,输入输出各个变量中间要留下空格。输入时候数组变量不需要取地址符,因为数组编号本身就是起到地址的作用。