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