三元组实现
#ifndef _NODE_H
#define _NODE_H
typedef int Element;
typedef Element* Triplet;
void InitTriplet (Triplet *pT,Element v1,Element v2,Element v3){
*pT=(Triplet)malloc(3*sizeof(Element));
if(!pT){
printf ("Error!");
}else{
(*pT)[0]=v1;
(*pT)[1]=v2;
(*pT)[2]=v3;
}
}
void Get(Triplet T,int i,Element *g){
*g=T[i-1];
printf("三元组数为%dn",*g);
}
void Put(Triplet p, int t,Element v1){
p[t-1]=v1;
printf("你已成功改变三元组%d位上的值n",t);
}
void IsAscending(Triplet T){
if(T[0]T[1]&&T[1]>T[2]){
printf("三元组降序排列!n") ;
}else{
printf("三元组非降序排列n");
}
}
void Max(Triplet T){
int i=0;
while(i>1){
i++;
if(T[i]>T[0])
{ T[0]=T[i];
}
}
printf("最大值为%d",T[0]);
}
void Min(Triplet T){
int i=0; while(i>1){
i++;
if(T[i]
主函数
#include
#include
#include "note.h"
int main(){
Element v1,v2,v3;
Element g;
v1=0;
v2=0;
v3=0;
Triplet T;
printf("三元组初始化中......n三元组初始化完成:0 0 0,n请输入三元组三个数,数字之间用空格间隔n");
InitTriplet (&T,v1,v2,v3);
scanf("%d %d %d",&v1,&v2,&v3);
T[0]=v1;
T[1]=v2;
T[2]=v3; int i;
printf("返回三元组元素请输入:0n") ;
printf("改变三元组元素请输入:1n");
printf("查看三元组是否升序排列请输入:2n");
printf("查看三元组是否降序排列请输入:3n");
printf("返回三元组最大元素请输入:4n");
printf("返回三元组最小元素请输入:5n");
printf("销毁三元组并结束请输入:-1n");
do{
printf("请选择你接下来的操作:");
scanf("%d",&i);
int t;
int n;
switch(i){
case 0:
printf("请输入要查询的元素位数:");
// 返回地i元素值
scanf("%d",&t);
if(t>0&&t<4){
Get(T,t,&g);
}else{
printf("Error!超出范围,请输入1-3之间的数字。n");
}
break;
case 1:
printf("请输入要改变的元素位数:");
scanf("%d",&n);
printf("请输入要改变的元素值:");
scanf("%d",&v1);
if(n>0&&n<4){
Put(&(*T),n,v1);
}else{
printf("Error!超出范围,请输入位数1-3之间的数字。");
} // 改变T的值
break;
case 2:
IsAscending(T);
break;
case 3:
IsDecending(T);
break;
case 4:
Max(T);
break;
case 5:
Min(T);
break;
case -1:
Deatroy(&(*T));
break;
} // 降序排列?
}
while(i!=-1);
return 0; }
运行图片



