1.定义结构体数组存储5个学生的信息:姓名,年龄,性别
定义函数实现输入,要求形参使用结构体指针接收
函数实现5个学生年龄排序(注意对年龄排序时,交换的是所有信息)
定义函数实现输出,要求形参使用结构体指针接收
#include <myhead.h>
#define Max 5
//利用typedef重命名定义结构体存储学生数据
typedef struct{
char name[20];
int age;
char sex[4];
}stu,*P_stu;
//定义一个冒泡排序函数
int P_sort(P_stu p,int n){
//定义一个stu类型的空结构体temp用于作为交换媒介
stu temp;
//冒泡排序法
for(int i=1;i<n;i++){
for(int j=0;j<n-1;j++){
//比较年龄大小,如果p[j]年龄大于p[j+1]年龄则双方交换位置
if(p[j].age>p[j+1].age){
temp =p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
return 0;
}
//定义一个输出函数
int Out_put(P_stu p,int n){
int i;
printf("所有学生信息按照年龄从小到大输出为:\n");
for(i=0;i<Max;i++){
printf("姓名:%s 年龄:%d 性别:%s\n",p[i].name,p[i].age,p[i].sex);
}
return 0;
}
int main(int argc, const char *argv[])
{
//为结构体分配动态内存
P_stu p=malloc(sizeof(stu)*5);
//循环输入五个学生数据
for(int i=0;i<Max;i++){
printf("请输入第%d个学生信息:\n",i+1);
printf("请输入学生姓名:");
scanf("%s",p[i].name);
printf("请输入该学生年龄:");
scanf("%d",&p[i].age);
printf("请输入该学生性别:");
scanf("%s",p[i].sex);
}
//调用排序函数
P_sort(p,Max);
//调用输出函数
Out_put(p,Max);
//释放内存
free(p);
//指针置空
p=NULL;
return 0;
}
2.定义小车结构体,存储名称、价钱、颜色。定义两个变量a,b,初始化,实现ab互换。
#include <myhead.h>
typedef struct{
char name[20];
float price;
char color[10];
}car,*P_car;
int main(int argc, const char *argv[])
{
car a={"卡迪拉克",15000.00,"蓝色"};
car b={"奥迪",10000.00,"黑色"};
car temp;
temp = a;
a = b;
b = temp;
printf("%s %s",a.name,b.name);
return 0;
}