数据结构 三元组代码实现:
#include<stdio.h> #define OK 1 #define ERROR 0 typedef int Status; typedef float ElemType; typedef struct { ElemType e[3]; }Triplet; //创建 Status initTriplet(Triplet &T,ElemType v0,ElemType v1,ElemType v2) { T.e[0]=v0; T.e[1]=v1; T.e[2]=v2; return OK; } //销毁 静态内存用完自动销毁 Status destroyElem(Triplet &T) { return OK; } //获取第i个元素的值 Status getElem(Triplet T,Status i,ElemType &e) { if(i<1||i>3) { return ERROR; }else { e=T.e[i-1]; return e; } } //换第i个的值 Status putElem(Triplet &T,int i,ElemType e) { if(i<1||i>3) { return ERROR; }else { T.e[i-1]=e; return T.e[i-1]; } } //判断升序 Status isAscending(Triplet T) { return (T.e[0]<T.e[1]&&T.e[1]<T.e[2]); } //判断降序 Status isDesneding(Triplet T) { return (T.e[0]>T.e[1]&&T.e[1]>T.e[2]); } //返回最大值 ElemType getMAX(Triplet T,ElemType &e) { if(T.e[0]>T.e[1]) { e=T.e[0]; }else e=T.e[1]; if(e<T.e[2]) { e=T.e[2]; } return e; } //最小值 ElemType getMIN(Triplet T,ElemType &e) { if(T.e[0]>T.e[1]) { e=T.e[1]; }else { e=T.e[0]; } if(T.e[2]<e) { e=T.e[2]; } return e; } int main() { Triplet T; Status flag,i; ElemType v0,v1,v2,e; printf("请输入三元组的三个数值:\n"); scanf("%f %f %f",&v0,&v1,&v2); flag=initTriplet(T,v0,v1,v2); printf("调用初始化函数后,flag=%d\n",flag); printf("T的三个值分别为:\n"); for(i=0;i<3;i++) { printf("%4.2f ",T.e[i]); } printf("\n"); if(isAscending(T)) { printf("该三元组元素为升序\n"); } if(isDesneding(T)) { printf("该三元组元素为降序\n"); } printf("该三元组最大值为:%4.2f\n",getMAX(T,e)); printf("该三元组最小值为:%4.2f\n",getMIN(T,e)); return OK; return 0; }
注意:float的输入输出是%f
引用是C++的内容,保存文件注意