用input,output输入,输出5个学生数据记录
思路:
-
学生数据记录--->结构体
-
多个学生数据记录----结构体数组
-
构造函数input(输出),output(输入)
//题目:构造input,output函数,输出5个学生数据记录 //1. 构造input,output函数——定义,声明,引用 //2. 输出5个学生记录——使用结构体循环输出 //2.1 先输出1个学生记录 #include <stdio.h> //struct student; struct student{ char name[20]; char sex[5]; int age; }; void input(struct student *stu){ int i; for(i=0; i<3; i++){ scanf("%s%s%d", stu[i].name, stu[i].sex, &stu[i].age); } } void output(struct student stu[]){ int i; for(i=0; i<3; i++){ printf("name is %s;sex is %s;age is %d\n", stu[i].name, stu[i].sex, stu[i].age); } } int main() { void input(struct student stu[]); void output(struct student stu[]); int i; struct student stu[3]; input(stu); output(stu); //stu.name[20] = "xiaoming" ; //stu.sex[5] = "nan"; //stu.age = 18; //struct student stu = {"xiaoming", "nan", 18}; return 0; }
学习到:
up思路:
- 结构体定义
- 接构体数组
- 构造函数input接收学生数据记录,构造函数output输出学生数据记录
-
结构体,定义,赋值(单个变量,整体),引用
-
结构体数组,结构体指针
-
构造函数
-
scanf连续键入多个不同类型数据
-
数组用{}初始化,必须在定义时,否则报错
-
结构体虽然是一个独立的地址空间,但其名字并不是地址
其变量名与普通变量名一样,传参时,需要取地址符&,与数组名不同。
-
结构体需要放在最上面,其下面的才可以引用它。