1.定义结构体数组存储5个学生的信息:姓名,年龄,性别
定义函数实现输入,要求形参使用结构体指针接收
函数实现5个学生年龄排序(注意对年龄排序时,交换的是所有信息)
定义函数实现输出,要求形参使用结构体指针接收
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 5
//定义结构体数组
typedef struct student
{
char name[100];
char sex[20];
int age;
}stu,*pstu;
void in_put(pstu a);
void out_put(pstu a);
void bj_stu(pstu a);
int main(int argc, const char *argv[])
{
pstu a = malloc(sizeof(stu)*N);
if(a==NULL)
{
printf("空间开辟失败\n");
return 0;
}
in_put(a);
out_put(a);
bj_stu(a);
printf("按年龄排序后:\n");
out_put(a);
free(a);
a=NULL;
return 0;
}
void in_put(pstu a)
{
for(int i=0;i<N;i++)
{
printf("请输入第%d个学生的姓名:\n", i+1);
scanf("%s", a[i].name);
getchar();
printf("请输入第%d个学生的性别:\n", i+1);
scanf("%s", a[i].sex);
getchar();
printf("请输入第%d个学生的年龄:\n", i+1);
scanf("%d", &a[i].age);
printf("\n");
}
}
void bj_stu(pstu a)
{
for(int i=1;i<N;i++)
{
for(int j=0;j<N-i;j++)
{
if(a[j].age < a[j+1].age)
{
stu t = a[j] ;
a[j] = a[j+1];
a[j+1]= t;
}
}
}
}
void out_put(pstu a)
{
for(int i=0; i<N;i++)
{
printf("姓名%s\t性别%s\t年龄%d\n", a[i].name , a[i].sex, a[i].age);
}
}
2.定义小车结构体,存储名称、价钱、颜色。定义两个变量a,b,初始化,实现ab互换。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
char name[20];
float price;
char color[20];
}Car,*Pcar;
void change(Pcar,Pcar);
int main(int argc, const char *argv[])
{
Car a={"宝马",50,"pink"};
Car b={"法拉利",1000,"red"};
Car t;
t=a;
a=b;
b=t;
printf("车款:%s 价格:%.2f万元 颜色%s\n",a.name,a.price,a.color);
printf("车款:%s 价格:%.2f万元 颜色%s\n",b.name,b.price,b.color);
return 0;
}