1.
2.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct
{
char name[20];
char color[20];
int price;
}car,*pcar;
pcar create();
void input();
void bubble();
void output();
int main(int argc, const char *argv[])
{
int m;
printf("请输入你要创建的结构体空间大小:");
scanf("%d",&m);
pcar p=create(m);
printf("%p\n",p);
input(p,m);
bubble(p,m);
output(p,m);
free(p);
p==NULL;
return 0;
}
pcar create(int m)
{
pcar p=(pcar)malloc(sizeof(car)*m);
if(p==NULL)
return NULL;
return p;
}
void input(pcar p,int m)
{
for(int i=0;i<m;i++)
{
printf("请输入品牌:");
scanf("%s",(p+i)->name);
getchar();
printf("请输入颜色:");
scanf("%s",(p+i)->color);
getchar();
printf("请输入价格:");
scanf("%d",&(p+i)->price);
getchar();
}
}
void bubble(pcar p,int m)
{
pcar temp=(pcar)malloc(sizeof(car)*m);
for(int i=1;i<m;i++)
{
int count=0;
for(int j=0;j<m-i;j++)
{
if((p+i)->price>(p+i+1)->price)
{
*temp=*(p+i);
*(p+i)=*(p+i+1);
*(p+i+1)=*temp;
count++;
}
}
if (count==0)
break;
}
free(temp);
temp==NULL;
}
void output(pcar p,int m)
{
printf("品牌\t颜色\t价格\n");
for(int i=0;i<m;i++)
{
printf("%s\t%s\t%d\n",(p+i)->name,(p+i)->color,(p+i)->price);
}