刚开始做的时候没看清题目。用C++语句测试了,不过没关系。所有的cout语句都是输出,你把所有的Cout语句改成printf语句然后把enum改成define几个常量就可以了,头文件删掉换成stdio。
h这个程序的调用顺序必须先InitTriplet,最后DestroyTriplet;具体意思你结合结果看一下:程序:#include#includeusingnamespacestd;typedefintElemtype,*Triplet;typedefintstatus;#defineOVERFLOW0#defineOK1#defineERROR2statusInitTriplet(Triplet&T,Elemtypev1,Elemtypev2,Elemtypev3){T=(Elemtype*)malloc(3*sizeof(Elemtype));if(!T)exit(OVERFLOW);T[0]=v1;T[1]=v2;T[2]=v3;returnOK;}statusDestroyTriplet(Triplet&T){free(T);T=NULL;returnOK;}statusGet(TripletT,inti,Elemtype&e){if(i3)returnERROR;e=T[i-1];returnOK;}statusput(Triplet&T,inti,Elemtypee){if(i3)returnERROR;T[i-1]=e;returnOK;}statusisAscending(TripletT){return(T[0]=T[1])&&(T[1]>=T[2]);}statusMax(TripletT,Elemtype&e){e=(T[0]>=T[1])?((T[0]>=T[2])?T[0]:T[2]):((T[1]>=T[2])?T[1]:T[2]);returnOK;}statusMin(TripletT,Elemtype&e){e=(T[0]<=T[1])?((T[0]<=T[2])?T[0]:T[2]):((T[1]<=T[2])?T[1]:T[2]);returnOK;}intmain(void){Elemtypee1=4,e2=5,e3=3,eTemp;Triplett;cout<<"InitTriplet(t,e1,e2,e3):"<<InitTriplet(t,e1,e2,e3)<<endl;Get(t,1,eTemp);cout<<"1位置:"<<eTemp<<endl;Get(t,2,eTemp);cout<<"2位置:"<<eTemp<<endl;Get(t,3,eTemp);cout<<"3位置:"<<eTemp<<endl;cout<<"改变2位置:";put(t,2,eTemp);Get(t,2,eTemp);cout<<eTemp<<endl;cout<<"isDescending:"<<(isDescending(t)?"Yes":"No")<<endl;cout<<"isAscending:"<<(isAscending(t)?"Yes":"No")<<endl;cout<<"改变3位置为7:"<<endl;put(t,3,7);Get(t,1,eTemp);cout<<"1位置:"<<eTemp<<endl;Get(t,2,eTemp);cout<<"2位置:"<<eTemp<<endl;Get(t,3,eTemp);cout<<"3位置:"<<eTemp<<endl;Max(t,eTemp);cout<<"最大:"<<eTemp<<endl;Min(t,eTemp);cout<<"最小:"<<eTemp<<endl;DestroyTriplet(t);system("pause");return0;}//结果:/*InitTriplet(t,e1,e2,e3):11位置:42位置:53位置:3改变2位置:3 改变3位置为7:1位置:42位置:33位置:7最大:7最小:3请按任意键继续。
。。*/。