数据结构实验---三元组

实现三元组的构建、销毁、放与置、找最大值、找最小值、判断是否为升序、降序

#include  "stdio.h"
#include  "stdlib.h"
#include  "malloc.h"
#include  "string.h"
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef float ElemType;
//创建三元组 
typedef ElemType *Triplet;
//初始化三元组 
Status initTriplet(Triplet &T,ElemType v0,ElemType v1,ElemType v2)
{
	T=(ElemType*)malloc(3*sizeof(ElemType));
	if(!T) exit(OVERFLOW);
	T[0]=v0;
	T[1]=v1;
	T[2]=v2;
	return OK;
}

//找最小值 
ElemType getMin(Triplet T,ElemType &e)
{
	if(T[0]<T[1])
	e=T[0];
	else
	e=T[1];
	if(T[2]<e)
	e=T[2];
	return e; 
}
//找最大值
ElemType getMax(Triplet T,ElemType &e) 
{
	if(T[0]>T[1])
	e=T[0];
	else
	e=T[1];
	if(T[2]>e)
	e=T[2];
	return e; 
}
//升序排列 
Status IsAscending(Triplet T){
	if((T[0]<=T[1])&&(T[1]<=T[2]))
	return 1;
	else return 0;
}
 //降序排列
Status IsDescending(Triplet T){
 	if((T[0]>=T[1])&&(T[1]>=T[2]))
 	return 1;
 	else return 0;
 } 
//销毁三元组 
Status DestroyTriplet(Triplet *T)
{
	free(T);  T=NULL;
	return OK;
}
//主程序 
int main()
{
	Triplet T;
	Status flag;
	ElemType v0,v1,v2,e;
	printf("请进入三元组的三个值v0,v1,v2:\n");
	scanf("%f,%f,%f",&v0,&v1,&v2);
	initTriplet(T,v0,v1,v2);
    printf("是否为升序排列为:%d \n",IsAscending(T));
    printf("是否为降序排列为:%d \n",IsDescending(T));
	printf("显示三元组:%f %f %f \n",T[0],T[1],T[2]);
	printf("最大值:%f\n最小值 :%f \n",getMax(T,e),getMin(T,e));
	flag=DestroyTriplet( &T);
	printf("是否销毁三元组%d\n",flag);
	return OK;
}

问题反思:

  1. 刚接触数据结构,上课一定要认真听讲,做好课前预习,课后复习的工作,不懂得及时问,不要给每堂课留下疑问。
  2. 对于课本上的例子自己要动手敲一遍,分析执行过程,多问自己几个为什么。
  3. 课本上的大多为伪代码,要仔细思考真正要实现这个功能应该如何编写。
  4. scanf中不能输出汉字提示。
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值