定义在头文件里面
#include<stdio.h>
#include<stdlib.h>
struct TRIP
{
int a;
int b;
int c;
};
typedef struct TRIP TRIP;
bool init_trip(TRIP *p,int v1,int v2,int v3);
TRIP *init_TRIP_a(int v1,int v2,int v3);
bool destroy_trip(TRIP *p);
bool get(TRIP *p,int pos,int *e);
bool put(TRIP *p,int pos,int *e);
bool get_max(TRIP *p,int *e);
bool get_min(TRIP *p,int *e);
int get_max1(TRIP *p);
int get_min1(TRIP *p);
bool is_desc(TRIP *s);//降序
bool is_asc(TRIP *s);
TRIP *add_ex(TRIP *p,TRIP *s);
bool add(TRIP *p,TRIP* s);
bool show(TRIP *p);
定义在.cpp文件 方法的实现
#include"TRAP.h"
bool init_trip(TRIP *p,int v1,int v2,int v3)
{
if(p == NULL)
{
return false;
exit(-1);
}
p->a = v1;
p->b = v2;
p->c = v3;
return true ;
}
TRIP *init_TRIP_a(int v1,int v2,int v3)
{
TRIP *p=(TRIP *)malloc(sizeof(TRIP)*1);
if(p == NULL)
{
printf("申请失败");
exit(-1);
}
p->a = v1;
p->b = v2;
p->c = v3;
return p;
}
bool destroy_trip(TRIP *p)
{
if(p== NULL)
{
exit(-1);
return false;
}
free(p);
return true ;
}
bool get(TRIP *p,int pos,int *s)
{
if(p == NULL || (pos<1 && pos >3) )
{
return false;
}
switch(pos)
{
case 1:
*s = p->a;
break;
case 2:
*s = p->b ;
break;
case 3:
*s = p->c ;
break;
default:
break;
}
return true;
}
bool put(TRIP *p,int pos,int *e)
{
if(p == NULL || (pos<1 && pos >3) )
{
return false;
}
switch(pos)
{
case 1:
p->a = *e;
break;
case 2:
p->b = *e;
break;
case 3:
p->c = *e;
break;
default:
break;
}
return true;
}
bool get_max(TRIP *p,int *e)
{
if(p == NULL)
{
return false;
}
if(p->a > p->b )
{
if(p->a > p->c)
{
*e = p->a;
}
else
{
*e = p->c ;
}
}
else
{
if(p->b > p->c )
{
*e = p->b ;
}
else
{
*e = p->c ;
}
}
return true;
}
bool get_min(TRIP *p,int *e)
{
if(p == NULL)
{
return false;
}
if(p->a<p->b )
{
if(p->a< p->c)
{
*e = p->a;
}
else
{
*e = p->c ;
}
}
else
{
if(p->b < p->c )
{
*e = p->b ;
}
else
{
*e = p->c ;
}
}
return true;
}
int get_max1(TRIP *p)
{
if(p == NULL)
{
return 0;
}
if(p->a > p->b )
{
if(p->a > p->c)
{
return p->a;
}
else
{
return p->c ;
}
}
else
{
if(p->b > p->c )
{
return p->b ;
}
else
{
return p->c ;
}
}
}
int get_min1(TRIP *p)
{
if(p == NULL)
{
return 0;
}
if(p->a<p->b )
{
if(p->a< p->c)
{
return p->a;
}
else
{
return p->c ;
}
}
else
{
if(p->b < p->c )
{
return p->b ;
}
else
{
return p->c ;
}
}
return true;
}
bool is_desc(TRIP *s)//降序
{
if(s== NULL)
{
return false;
}
if((s->a > s->b)&&(s->b < s->c) )
{
return true;
}
else
{
return false;
}
}
bool is_asc(TRIP *s)
{
if(s==NULL)
{
return false;
}
if((s->a < s->b)&&(s->b < s->c) )
{
return true;
}
else
{
return false;
}
}
TRIP *add_ex(TRIP *p,TRIP *s)
{
TRIP *m=(TRIP *)malloc(sizeof(TRIP)*1);
m->a = p->a + s->a ;
m->b = p->b + s->b ;
m->c = p->c + p->c ;
return m;
}
bool add(TRIP *p,TRIP* s)
{
if(!(p==NULL && s==NULL))
{
return false;
}
p->a = p->a +s->a ;
p->b = p->b +s->b ;
p->c = p->c +p->c ;
return true ;
}
bool show(TRIP *p)
{
if(p==NULL)
{
return false;
}
printf("%d %d %d\n",p->a ,p->b ,p->c );
}