头文件
#ifndef __HEAD5_H__
#define __HEAD5_H__
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct
{
char name[20];
char color[20];
int price;
}car,*car_t;
car_t create(int n);
void input(car_t p,int n);
void Sort(car_t p,int n);
void output(car_t p,int n);
car_t free_space(car_t p);
#endif
定义函数
#include "head5.h"
car_t create(int n)
{
car_t p = (car_t)malloc(sizeof(car)*n);
if (NULL == p)
return NULL;
return p;
}
void input(car_t p,int n)
{
for (int i = 0; i < n; i++)
{
printf("请输入车辆品牌:");
scanf("%s",(p+i)->name);
printf("请输入车辆颜色:");
scanf(" %s",(p+i)->color);
printf("请输入车辆价格:");
scanf(" %d",&(p+i)->price);
}
}
void Sort(car_t p,int n)
{
int i,j;
for (i = 1;i < n; i++)
{
for (j = 0; j < n - i; j++)
{
if ((p+j)->price > (p+j+1)->price)
{
car t = *(p+j);
*(p+j) = *(p+j+1);
*(p+j+1) = t;
}
}
}
}
void output(car_t p,int n)
{
printf("品牌\t颜色\t价格\n");
for (int i = 0; i < n; i++)
{
printf("%s\t",(p+i)->name);
printf("%s\t",(p+i)->color);
printf("%d\n",(p+i)->price);
}
}
car_t free_space(car_t p)
{
if (NULL == p)
return NULL;
free(p);
p = NULL;
return p;
}
主函数
#include "head5.h"
int main(int argc, const char *argv[])
{
int n = 0;
printf("请输入n的值:");
scanf("%d",&n);
car_t p = create(n);
input(p,n);
Sort(p,n);
output(p,n);
free_space(p);
return 0;
}