C语言中的结构体数组
来源:互联网 发布:php模拟http 编辑:程序博客网 时间:2024/06/07 14:56
struct Birthday{ int year; int month; int day;};//声明结构体类型//typedef:定义新类型,为类型取别名//typedef 原有类型,新类型typedef struct Student{ char *name; int age; int code; double score[3]; //嵌套 struct Birthday birthday;} Student;void printStudent(struct Student student);void printStudents(struct Student *student,int length );void soreStudents(Student *student,int length);int main(int argc,const char * argv[]){ //定义结构体数组 struct Student students[5] ={ {"student1",21,1,{80,99,90},{1993, 10, 3}}, {"student2",20,2,{80,99,90},{1993, 10, 3}}, {"student3",23,3,{80,99,90},{1993, 10, 3}}, {"student4",21,4,{80,99,90},{1993, 10, 3}}, {"student5",26,5,{80,99,90},{1993, 10, 3}}}; printStudents(students,5); printf("-------------------------------"); soreStudents(students, 5); printStudents(students,5); return 0;}//打印出单个学生的信息void printStudent(struct Student student){ printf("<Student : %p> name =%s age =%d code = %d score = {%.2f,%.2f,%.2f} birthday = %d.%d.%d\n", &student, student.name, student.age, student.code, student.score[0], student.score[1], student.score[2], student.birthday.year, student.birthday.month, student.birthday.day); //符号写错毁一生啊,里面逗号打成分号了啊。。。}//打印出所有学生的信息void printStudents(struct Student *student,int length ){ if (student == NULL && length == 0) { return; } for (int i = 0; i < length; i++) { printStudent(student[i]); }}//数组的排序(根据学生的年龄)void soreStudents(Student *student,int length){ if (student == NULL || length == 0) { return; } for (int i =0; i < length; i++) { for (int j = i; j<length; j++) { if (student[i].age>student[j].age) { Student temp = student[i]; student[i] = student[j]; student[j] = temp; } } }}
运行结果:
<Student : 0x7fff5fbff6b0> name =student1 age =21 code = 1 score = {80.00,99.00,90.00} birthday = 1993.10.3
<Student : 0x7fff5fbff6b0> name =student2 age =20 code = 2 score = {80.00,99.00,90.00} birthday = 1993.10.3
<Student : 0x7fff5fbff6b0> name =student3 age =23 code = 3 score = {80.00,99.00,90.00} birthday = 1993.10.3
<Student : 0x7fff5fbff6b0> name =student4 age =21 code = 4 score = {80.00,99.00,90.00} birthday = 1993.10.3
<Student : 0x7fff5fbff6b0> name =student5 age =26 code = 5 score = {80.00,99.00,90.00} birthday = 1993.10.3
-------------------------------<Student : 0x7fff5fbff6b0> name =student2 age =20 code = 2 score = {80.00,99.00,90.00} birthday = 1993.10.3
<Student : 0x7fff5fbff6b0> name =student1 age =21 code = 1 score = {80.00,99.00,90.00} birthday = 1993.10.3
<Student : 0x7fff5fbff6b0> name =student4 age =21 code = 4 score = {80.00,99.00,90.00} birthday = 1993.10.3
<Student : 0x7fff5fbff6b0> name =student3 age =23 code = 3 score = {80.00,99.00,90.00} birthday = 1993.10.3
<Student : 0x7fff5fbff6b0> name =student5 age =26 code = 5 score = {80.00,99.00,90.00} birthday = 1993.10.3
Program ended with exit code: 0
- C语言中的结构体数组
- C语言中的结构体数组
- C语言中的结构体数组
- C语言中的柔性数组结构
- C语言结构体数组
- C语言结构体数组
- C语言结构体数组
- C中的数组、结构体
- C语言中的结构体
- c语言中的结构体
- C语言中的结构体
- c语言中的结构体
- C语言中的结构体
- c语言中的结构体
- C语言中的结构体
- C语言中的结构体
- c语言中的结构体
- C语言结构体对齐存储问题以及给结构体中的数组的赋值问题
- 两个有序数组的中位数 【算法】
- Maven最佳实践:Maven仓库
- 在MFC中使用自定义字体来进行文本输出
- UITableViewCell的prepareForReuse方法
- DDR布线要求及拓扑结构分析
- C语言中的结构体数组
- 正则表达式基本知识
- 简单介绍:Java web保存日志与Android保存日志文件
- Linux之Makefile(ifdef)
- linux mysql 安装
- 多线程之Java线程阻塞与唤醒
- 【DP】从现在开始练习
- java set get访问器理解
- S5打野攻略