1.定义结构体数组存储5个学生的信息:姓名,年龄,性别
定义函数实现输入,要求形参使用结构体指针接收
函数实现5个学生年龄排序(注意对年龄排序时,交换的是所有信息)
定义函数实现输出,要求形参使用结构体指针接收
#include <myhead.h>
typedef struct students{
char name[20];
int age;
int gender;
}Stu, *Stu_Ptr, Stu_Arr[5];
int main(int argc, const char *argv[])
{
int t;
char tr[20];
Stu_Ptr stu = malloc(sizeof(Stu)*5);
for(int i=0; i<5; i++){
printf("请输入第%d位学生的姓名,年龄,性别:", i+1);
scanf("%s%d%d", stu[i].name, &stu[i].age, &stu[i].gender);
}
//冒泡排序
for(int i=1; i<5; i++){
for(int j=0; j<5-i; j++){
if(stu[j].age<stu[j+1].age){
strcpy(tr,stu[j].name);
strcpy(stu[j].name, stu[j+1].name);
strcpy(stu[j+1].name, tr);
t=stu[j].age, stu[j].age=stu[j+1].age, stu[j+1].age=t;
t=stu[j].gender, stu[j].gender=stu[j+1].gender, stu[j+1].gender=t;
}
}
}
//输出
printf("按年龄排序后,学生的信息依次为:\n");
for(int i=0; i<5; i++){
printf("%s\t%d\t%d\n", stu[i].name, stu[i].age, stu[i].gender);
}
free(stu);
return 0;
}
2.定义小车结构体,存储名称、价钱、颜色。定义两个变量a,b,初始化,实现ab互换。
#include <myhead.h>
typedef struct toycar{
char name[20];
int price;
char color[20];
}Car, *Car_Ptr, Car_Arr[2];
int main(int argc, const char *argv[])
{
int t;
char tr[20];
Car_Ptr car = malloc(sizeof(Car)*2);
Car_Arr ab = {{"a", 2000, "blue"},{"b", 6000, "golden"}};
printf("小车的信息为:\n%s\t%d\t%s\n", ab[0].name, ab[0].price, ab[0].color);
strcpy(tr,ab[0].name);
strcpy(ab[0].name, ab[1].name);
strcpy(ab[1].name, tr);
t=ab[0].price, ab[0].price=ab[1].price, ab[1].price=t;
strcpy(tr,ab[0].color);
strcpy(ab[0].color, ab[1].color);
strcpy(ab[1].color, tr);
//输出
printf("交换后,小车的信息依次为:\n");
for(int i=0; i<2; i++){
printf("%s\t%d\t%s\n", ab[i].name, ab[i].price, ab[i].color);
}
free(car);
return 0;
}