如何让一个网站排名掉,seo课程简介,PHP网站开发实例教程电子书,手机网站大全推荐1 需求
以录入学生信息#xff08;姓名、学号、性别、出生日期#xff09;为例#xff0c;首先通过键盘输入需要录入的学生的数量#xff0c;再依次输入这些学生的信息#xff0c;输入完成后输出所有信息。
2 代码
#includestdio.h
#includestdlib.h//…1 需求
以录入学生信息姓名、学号、性别、出生日期为例首先通过键盘输入需要录入的学生的数量再依次输入这些学生的信息输入完成后输出所有信息。
2 代码
#includestdio.h
#includestdlib.h// 定义结构体并取别名为Date
typedef struct {int year;int month;int day;
}Date; // 定义结构体并取别名为Student
typedef struct {char name[9];char number[5];char sex[3];Date birthday; // 内嵌结构体Date
}Student;int main() {int count;printf(请输入需要录入的学生数量);scanf(%d, count);printf(\n请依次输入每个学生的信息\n\n姓名\t学号\t性别\t出生日期\n);// 由于不能使用变量定义数组Student stuArray[count];// 所以采用指针并通过动态内存分配来实现 // 在堆中申请一部分连续的内存空间用来存储输入的信息 // 并使Student *类型的指针变量stuPoint指向此空间的首地址Student *stuPoint (Student*)malloc(count * sizeof(Student));// 动态内存分配可能失败若失败则程序直接退出 if (stuPoint NULL) {exit(1);}// 定义第二个指针stuTempPoint1使它和stuPoint指向同一个位置 // 当输入完一个学生后stuTempPoint1往下移直至输入完所有学生// 输入完所有学生后该指针就指向了没有学生信息的位置相当于“废了”// 其实呢也可以继续用只要再往上移移回去就行了Student *stuTempPoint1 stuPoint;for(int i 0; i count; i, stuTempPoint1) {scanf(%s%s%s%d%d%d, stuTempPoint1 - name, stuTempPoint1 - number, stuTempPoint1 - sex, stuTempPoint1 - birthday.year, stuTempPoint1 - birthday.month,stuTempPoint1 - birthday.day);}printf(\n\n\n\n);// 定义第三个指针stuTempPoint2使它和stuPoint指向同一个位置 // 每输出完一个学生信息后指针下移全部输出完毕后该指针也相当于“跪了”Student *stuTempPoint2 stuPoint;for(int i 0; i count; i, stuTempPoint2) {printf(姓名%s\t学号%s\t性别%s\t出生日期%d年%d月%d日\n, stuTempPoint2 - name, stuTempPoint2 - number, stuTempPoint2 - sex, stuTempPoint2 - birthday.year, stuTempPoint2 - birthday.month,stuTempPoint2 - birthday.day);}printf(\n\nstuTempPoint1指针往上移之后再次利用\n\n);// 回到原始位置 stuTempPoint1 - count;// 再一顿输出 for(int i 0; i count; i, stuTempPoint1) {printf(姓名%s\t学号%s\t性别%s\t出生日期%d年%d月%d日\n, stuTempPoint1 - name, stuTempPoint1 - number, stuTempPoint1 - sex, stuTempPoint1 - birthday.year, stuTempPoint1 - birthday.month,stuTempPoint1 - birthday.day);}// 释放刚刚申请的内存空间一定要释放 free(stuPoint);return 0;
}3 运行结果