主题:求大神指教哪错了!!!
//main1-1.cpp
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef int ElemType; //定义抽象数据类型ElemType在本程序中为整型
//typedef double ElemType //定义抽象数据类型ElemType在本程序中为双精度型
//#include"c1-1.h"
//#include"bo1-1.cpp"
//include"func1-1.h"
//c1-1.cpp
typedef ElemType *Triplet;
//bo1-1.cpp
Status InitTriplet(Triplet T,ElemType v1,ElemType v2,ElemType v3){
//构造三元组T,依次置T的3个元素的初值为v1,v2和v3
T=(ElemType *)malloc(3*sizeof(ElemType));
if(!T)
exit(OVERFLOW);
T[0]=v1; T[1]=v2; T[2]=v3;
return OK;
}//InitTriplet
Status DestroyTriplet(Triplet &T){
//销毁三元组T
free(T);
T=NULL;
return OK;
}//DestroyTriplet
Status Get(Triplet T,int i,ElemType &e){
//1<=i<=3,用e返回T的第i元的值
if(i<1||i>3)
return ERROR;
e=T[i-1];
return OK;
}//Get
Status Put(Triplet &T,int i,ElemType e){
//1<=i<=3,置T的第i元的值为e
if(i<1||i>3)
return ERROR;
T[i-1]=e;
return OK;
}//Put
Status IsAscending(Triplet T){
//如果T的3个元素按升序排列,则返回1,否则返回0
return(T[0]<=T[1]&&T[1]<=T[2]);
}//IsAscending
Status IsDescending(Triplet T){
//如果T的3个元素按降序排列,则返回1,否则返回0
return(T[0]>=T[1]&&T[1]>=T[2]);
}//IsDescending
Status Max(Triplet T,ElemType &e){
//用e返回指向T的最大元素的值
e=(T[0]>=T[1])?(T[0]>=T[2]?T[0]:T[2]):(T[1]>=T[2]?T[1]:T[2]);
return OK;
}//Max
Status Min(Triplet T,ElemType &e){
//用e返回指向T的最小元素的值
e=(T[0]<=T[1])?(T[0]<=T[2]?T[0]:T[2]):(T[1]<=T[2]?T[1]:T[2]);
return OK;
}//Min
//func1-1.cpp
void PrintE(ElemType e){
printf("%d\n",e);
//printf("%f\n",e);
}//PrintE
void PrintT(Triplet T){
printf("%d,%d,%d\n",T[0],T[1],T[2]);
//printf("%f,%f,%f\n",T[0],T[1],T[2]);
}//PrintT
void main()
{
Triplet T;
ElemType m;
Status i;
i=InitTriplet(T,5,7,9);
//i=InitTriplet(T,5.0,7.0,9.0);
printf("调用初始化函数后,i%d(1:成功)。T的3个值为",i);
PrintT(T);
i=Get(T,2,m);
if(i==OK)
{
printf("T的第2个值为");
PrintE(m);
}
i=Put(T,2,6);
if(i==OK)
{
printf("将T的第2个值改为6后,T的3个值为");
PrintT(T);
}
i=IsAscending(T);
printf("调用测试升序的函数后,i=%d(0:否 1:是)\n",i);
i=IsDescending(T);
printf("调用测试降序的函数后,i=%d(0:否 1:是)\n",i);
if((i=Max(T,m))==OK)
{
printf("T中的最大值为");
PrintE(m);
}
if((i=Min(T,m))==OK)
{
printf("T中的最小值为");
PrintE(m);
}
DestroyTriplet(T);
printf("销毁T后,T=%u\n",T);
}
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef int ElemType; //定义抽象数据类型ElemType在本程序中为整型
//typedef double ElemType //定义抽象数据类型ElemType在本程序中为双精度型
//#include"c1-1.h"
//#include"bo1-1.cpp"
//include"func1-1.h"
//c1-1.cpp
typedef ElemType *Triplet;
//bo1-1.cpp
Status InitTriplet(Triplet T,ElemType v1,ElemType v2,ElemType v3){
//构造三元组T,依次置T的3个元素的初值为v1,v2和v3
T=(ElemType *)malloc(3*sizeof(ElemType));
if(!T)
exit(OVERFLOW);
T[0]=v1; T[1]=v2; T[2]=v3;
return OK;
}//InitTriplet
Status DestroyTriplet(Triplet &T){
//销毁三元组T
free(T);
T=NULL;
return OK;
}//DestroyTriplet
Status Get(Triplet T,int i,ElemType &e){
//1<=i<=3,用e返回T的第i元的值
if(i<1||i>3)
return ERROR;
e=T[i-1];
return OK;
}//Get
Status Put(Triplet &T,int i,ElemType e){
//1<=i<=3,置T的第i元的值为e
if(i<1||i>3)
return ERROR;
T[i-1]=e;
return OK;
}//Put
Status IsAscending(Triplet T){
//如果T的3个元素按升序排列,则返回1,否则返回0
return(T[0]<=T[1]&&T[1]<=T[2]);
}//IsAscending
Status IsDescending(Triplet T){
//如果T的3个元素按降序排列,则返回1,否则返回0
return(T[0]>=T[1]&&T[1]>=T[2]);
}//IsDescending
Status Max(Triplet T,ElemType &e){
//用e返回指向T的最大元素的值
e=(T[0]>=T[1])?(T[0]>=T[2]?T[0]:T[2]):(T[1]>=T[2]?T[1]:T[2]);
return OK;
}//Max
Status Min(Triplet T,ElemType &e){
//用e返回指向T的最小元素的值
e=(T[0]<=T[1])?(T[0]<=T[2]?T[0]:T[2]):(T[1]<=T[2]?T[1]:T[2]);
return OK;
}//Min
//func1-1.cpp
void PrintE(ElemType e){
printf("%d\n",e);
//printf("%f\n",e);
}//PrintE
void PrintT(Triplet T){
printf("%d,%d,%d\n",T[0],T[1],T[2]);
//printf("%f,%f,%f\n",T[0],T[1],T[2]);
}//PrintT
void main()
{
Triplet T;
ElemType m;
Status i;
i=InitTriplet(T,5,7,9);
//i=InitTriplet(T,5.0,7.0,9.0);
printf("调用初始化函数后,i%d(1:成功)。T的3个值为",i);
PrintT(T);
i=Get(T,2,m);
if(i==OK)
{
printf("T的第2个值为");
PrintE(m);
}
i=Put(T,2,6);
if(i==OK)
{
printf("将T的第2个值改为6后,T的3个值为");
PrintT(T);
}
i=IsAscending(T);
printf("调用测试升序的函数后,i=%d(0:否 1:是)\n",i);
i=IsDescending(T);
printf("调用测试降序的函数后,i=%d(0:否 1:是)\n",i);
if((i=Max(T,m))==OK)
{
printf("T中的最大值为");
PrintE(m);
}
if((i=Min(T,m))==OK)
{
printf("T中的最小值为");
PrintE(m);
}
DestroyTriplet(T);
printf("销毁T后,T=%u\n",T);
}