编程实现对8位学生学号、姓名、出生年月信息的输入与输出,分析并理解结构体嵌套定义和结构数组。
时间: 2023-12-20 12:04:20 浏览: 45
好的,以下是 C 语言的代码示例,实现对8位学生学号、姓名、出生年月信息的输入与输出:
```c
#include <stdio.h>
struct date {
int year;
int month;
int day;
};
struct student {
char id[10];
char name[20];
struct date birth;
};
int main() {
struct student students[8];
int i;
for (i = 0; i < 8; i++) {
printf("请输入第%d个学生的学号、姓名、出生年月(格式:xxxxxx xxxxxxxx xxxx-xx-xx):", i+1);
scanf("%s %s %d-%d-%d", students[i].id, students[i].name, &students[i].birth.year, &students[i].birth.month, &students[i].birth.day);
}
printf("学生信息如下:\n");
for (i = 0; i < 8; i++) {
printf("学号:%s,姓名:%s,出生日期:%d年%d月%d日\n", students[i].id, students[i].name, students[i].birth.year, students[i].birth.month, students[i].birth.day);
}
return 0;
}
```
运行上述代码,可以依次输入8位学生的学号、姓名、出生年月信息,然后输出所有学生的信息。例如,输入以下信息:
```
请输入第1个学生的学号、姓名、出生年月(格式:xxxxxx xxxxxxxx xxxx-xx-xx):20190101 张三 2000-01-01
请输入第2个学生的学号、姓名、出生年月(格式:xxxxxx xxxxxxxx xxxx-xx-xx):20190102 李四 2001-02-02
请输入第3个学生的学号、姓名、出生年月(格式:xxxxxx xxxxxxxx xxxx-xx-xx):20190103 王五 2002-03-03
请输入第4个学生的学号、姓名、出生年月(格式:xxxxxx xxxxxxxx xxxx-xx-xx):20190104 赵六 2003-04-04
请输入第5个学生的学号、姓名、出生年月(格式:xxxxxx xxxxxxxx xxxx-xx-xx):20190105 钱七 2004-05-05
请输入第6个学生的学号、姓名、出生年月(格式:xxxxxx xxxxxxxx xxxx-xx-xx):20190106 孙八 2005-06-06
请输入第7个学生的学号、姓名、出生年月(格式:xxxxxx xxxxxxxx xxxx-xx-xx):20190107 周九 2006-07-07
请输入第8个学生的学号、姓名、出生年月(格式:xxxxxx xxxxxxxx xxxx-xx-xx):20190108 吴十 2007-08-08
```
则输出结果为:
```
学生信息如下:
学号:20190101,姓名:张三,出生日期:2000年1月1日
学号:20190102,姓名:李四,出生日期:2001年2月2日
学号:20190103,姓名:王五,出生日期:2002年3月3日
学号:20190104,姓名:赵六,出生日期:2003年4月4日
学号:20190105,姓名:钱七,出生日期:2004年5月5日
学号:20190106,姓名:孙八,出生日期:2005年6月6日
学号:20190107,姓名:周九,出生日期:2006年7月7日
学号:20190108,姓名:吴十,出生日期:2007年8月8日
```
这里使用了结构体嵌套定义,即在学生结构体中嵌套了出生年月结构体。同时,使用了结构数组来存储多个学生的信息,可以方便地进行输入和输出。