#include"stdio.h"
#include"string.h"
#include"stdlib.h"
typedef struct _Teacher
{
char title[30];
char* btitle;
char ** student;
int age;
}Teacher;
int printfTeachers(Teacher * t, int num)
{
for(int i = 0 ;i < num ;i++)
{
printf("%d ",t[i].age);
printf("%s ",t[i].title);
printf("%s ",t[i].btitle);
for(int j = 0 ;j < 2 ;j ++)
{
printf("%s ",t[i].student[j]);
}
printf("\n");
}
}
int sortTeachers(Teacher * t, int num)
{
Teacher temp;
for(int i = 0 ;i < num ;i++)
{
for(int j = i+1 ;j < num ; j++)
{
if(t[j].age < t[i].age)
{
temp = t[i];
t[i] = t[j];
t[j] = temp;
}
}
}
}
Teacher * sanfArrayTeache(int num)
{
Teacher * t = (Teacher*)malloc(num*sizeof(Teacher));
int numstudent = 2;
for(int i = 0 ;i < num; i++)
{
printf("Enter age:");
scanf("%d",&t[i].age);
printf("Enter title: ");
scanf("%s",t[i].title);
printf("Enter btitle:");
t[i].btitle = (char*)malloc(12*sizeof(char));
memset(t[i].btitle,0,12*sizeof(char));
scanf("%s",t[i].btitle);
char ** tempstudent = (char **)malloc(numstudent*sizeof(char*));
for(int j = 0 ;j< numstudent; j++)
{
tempstudent[j] =(char*)malloc(20*sizeof(char));
printf("Enter sutdent%d:",j);
scanf("%s",tempstudent[j]);
}
t[i].student = tempstudent;
}
return t;
}
int freeArrayTeache(Teacher * t, int num)
{
if(t != NULL)
{
for( int i = 0 ;i < num ;i ++)
{
free(t[i].btitle);
}
}
}
int main()
{
Teacher * t = sanfArrayTeache(4);
printfTeachers(t,4);
sortTeachers(t,4);
printfTeachers(t,4);
free(t);
return 0;
}
结构体二级指针
最新推荐文章于 2024-07-20 10:50:19 发布