房天下 > 房天下问答 > 业主生活 > 其他
  • c语言的调用问题(数据结构与算法)

    status InitTriplet(Triplet &T,Elemtype v1,Elemtype v2,Elemtype v3){ T=(Elemtype*)malloc(3*sizeof(Elemtype)); if(!T)exit(OVERFLOW); T[0]=v1; T[2]=v2; T[2]=v3; return OK;}status DestroyTriplet(Triplet &T){ free(T); T=NULL; return OK;}status Get(Triplet T,int i,Elemtype &e){ if(i<1||i>3)return ERROR; e=T[i-1]; return OK;}status put(Triplet &T,int i,Elemtype e){ if(i<1||i>3)return ERROR; T[i-1]=e; return OK;}status isAscending(Triplet T){ return (T[0]<=T[1])&&(T[1]<=T[2]);}status isDescending(Triplet T){ return (T[0]>=T[1])&&(T[1]>=T[2]);}status Max(Triplet T,Elemtype &e){ e=(T[0]>=T[1])?((T[0]>=T[2])?T[0]:T[2]):((T[1]>=T[2])?T[1]:T[2]); return OK;}status Min(Triplet T,Elemtype &e){ e=(T[0]<=T[1])?((T[0]<=T[2])?T[0]:T[2]):((T[1]<=T[2])?T[1]:T[2]); return OK;}请用c语言帮我写一个程序。用上以上函数,在函数主体调用上面每一个程序,有值得输入,编译后有值显示

    提问者:qianruyan

    发布于2011-01-18

共1个回答
  • 破烂嗓子 丨Lv 0
    刚开始做的时候没看清题目。用C++语句测试了,不过没关系。所有的cout 语句都是输出,你把所有的Cout语句改成printf语句然后把enum改成define几个常量就可以了,头文件删掉换成stdio.h这个程序的调用顺序必须先InitTriplet,最后DestroyTriplet;具体意思你结合结果看一下:程序:#include<iostream>#include<fstream>using namespace std;typedef int Elemtype, *Triplet;typedef int status;#define OVERFLOW 0#define OK 1#define ERROR 2status InitTriplet(Triplet &T,Elemtype v1,Elemtype v2,Elemtype v3){ T=(Elemtype*)malloc(3*sizeof(Elemtype)); if(!T)exit(OVERFLOW); T[0]=v1; T[1]=v2; T[2]=v3; return OK; } status DestroyTriplet(Triplet &T){ free(T); T=NULL; return OK; } status Get(Triplet T,int i,Elemtype &e){ if(i<1||i>3)return ERROR; e=T[i-1]; return OK; } status put(Triplet &T,int i,Elemtype e){ if(i<1||i>3)return ERROR; T[i-1]=e; return OK; } status isAscending(Triplet T){ return (T[0]<=T[1])&&(T[1]<=T[2]); } status isDescending(Triplet T){ return (T[0]>=T[1])&&(T[1]>=T[2]); } status Max(Triplet T,Elemtype &e){ e=(T[0]>=T[1])?((T[0]>=T[2])?T[0]:T[2]):((T[1]>=T[2])?T[1]:T[2]); return OK; } status Min(Triplet T,Elemtype &e){ e=(T[0]<=T[1])?((T[0]<=T[2])?T[0]:T[2]):((T[1]<=T[2])?T[1]:T[2]); return OK; }int main( void ){ Elemtype e1=4,e2=5,e3=3,eTemp; Triplet t; 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"); return 0;}//结果:/*InitTriplet(t,e1,e2,e3): 11位置:42位置:53位置:3改变2位置:3isDescending:YesisAscending:No改变3位置为7:1位置:42位置:33位置:7最大:7最小:3请按任意键继续. . .*/参考文献:Answered by 小恩8504
    +10 2011-01-18 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。