// Triplet.cpp : 定义控制台应用程序的入口点。
//
#include "stdio.h"
#include "stdlib.h"
#define OK 1
#define ERROE 0

typedef int Status;

typedef int *Triplet;//定义Triplet为指针类型;

void main()
{

//构造三元组
Status InitTriplet(Triplet *T, int v1, int v2, int v3);

//销毁三元组
Status DestroyTriplet(Triplet *T);

//返回三元组的第i个元素并保存在变量e中
Status Get(Triplet T, int i, int *e);

//将三元组下标为为i的值替换为e
Status Put(Triplet *T, int i, int e);

//判断三元组是否是升序排列
Status IsAcending(Triplet T);

//判断三元组是否是降序排列
Status IsDcending(Triplet T);

//找出三元组中的最大值并保存在e中
Status Max(Triplet T, int *e);
//找出三元组中的最小值并保存在e中
Status Min(Triplet T, int *e);

Triplet T;
int a = 1, b = 2, c = 3, e=0, max, min;
//初始化三元组
InitTriplet(&T, a, b, c);

Get(T, 1, &e);

Put(&T, 1, 5);

Max(T, &max);

Min(T, &min);

printf("当前元素的值为%d\n",e);

printf("当前三元组中的最大值为%d\n", max);

printf("当前三元组中的最小值为%d\n", min);

}

//初始化三元组
Status InitTriplet(Triplet *T, int v1, int v2, int v3) {

*T = (int *)malloc(sizeof(int) * 3);

if (*T == NULL) {
exit(0);
}

*(*T) = v1;
*(*T+1) = v2;
*(*T+2) = v3;

return OK;

}
//销毁三元组
Status Destroy(Triplet *T) {

free(T);
return OK;
}

//根据下标获取三元组下标的值
Status Get(Triplet T, int i, int *e) {
if (i < 1 || i>3) {

return ERROE;

}
*e = *(T+i);

return *e;
}
//向三元组添加元素
Status Put(Triplet *T, int i, int e) {
if (i < 1 || i>3) {
return ERROE;
}
*(*T+i - 1) = e;
return OK;

}

//判断三元组是否是升序排列
Status IsAcending(Triplet T) {
if (*(T+0) < *(T+1) && *(T+1) < *(T+2)) {
return OK;
}
return ERROE;
}

//判断三元组是否是降序排列
Status IsDcending(Triplet T) {
if (*(T+0) > *(T+1) && *(T+1) > *(T+2)) {
return OK;
}
return ERROE;
}

//获取三元组中的最大值
Status Max(Triplet T, int *max) {

*max = *(T+0);
for (int i = 1; i <3; i++)
{
if (*max < *(T+i)) {
*max = *(T+i);
}
}
return OK;

}

//获取三元组中的最小值
Status Min(Triplet T, int *min) {
*min = *(T+0);
for (int i = 0; i <3; i++)
{
if (*min > *(T+i)) {
*min = *(T+i);
}

}

return OK;

}

c语言三元组的更多相关文章

  1. 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)

    三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述) 用经典矩阵转置算法和普通的三元组矩阵转置在时间复杂度上都是不乐观的.快速转置算法在增加适当存储空间后实现快速转置具体原理见代码注释部 ...

  2. 三元组ADT (数据结构C语言版) C++实现

    很久没用C语言,都忘了C语言中没有引用参数,下面的代码中用到了C语言没有的引用参数. 首先是一些表示状态的全局变量 common.h #define TRUE 1 #define FALSE 0 #d ...

  3. 稀疏矩阵三元组表快速转置(C语言实现)

    本来准备昨天下午写的,但是因为去参加360众测靶场的考核耽搁了,靶场的题目还是挺基础的. 继续学习吧. 使用黑色墨水在白纸上签名就像由像素点构成的稀疏矩阵.如图4所示. 图4 手写体签名 [问题]请将 ...

  4. 三元组顺序结构实现稀疏矩阵相加,行序优先(Java语言描述)

    不用十字链表也可以稀疏矩阵相加时间复杂度最坏情况达到O(tuA + tuB);思路比较简单就不赘述了,代码如下: 三元组: package 行逻辑链接的顺序表实现稀疏矩阵的相乘; public cla ...

  5. lecture4-神经网络在语言上的应用

    Hinton第四课 这一课主要介绍神经网络在语言处理上应用,而主要是在文本上,并附上了2003年Bengio 等人的19页的论文<A Neural Probabilistic Language ...

  6. C语言 稀疏矩阵 压缩 实现

    稀疏矩阵压缩存储的C语言实现 (GCC编译). /** * @brief C语言 稀疏矩阵 压缩 实现 * @author wid * @date 2013-11-04 * * @note 若代码存在 ...

  7. 使用Jena RDF API 开发脚本语言管理资源描述框架模型

    摘要 资源描述框架(Resource Description Framework RDF)是一种以XML格式描述元数据的标准格式.Jena是一种用于将关系数据库或是文本文件中所表示的数据建立为元数据模 ...

  8. Drools文档(八) 规则语言参考

    规则语言参考 概述 Drools有一个"本地"的规则语言.这种格式在标点符号上非常轻,并且通过"扩展器"支持自然语言和领域特定的语言,使语言能够变形到您的问题领 ...

  9. R语言︱SNA-社会关系网络—igraph包(社群划分、画图)(三)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 社群划分跟聚类差不多,参照<R语言与网站 ...

随机推荐

  1. 设计模式之状态模式(PHP实现)

    github地址:https://github.com/ZQCard/design_pattern /** * 在状态模式(State Pattern)中,类的行为是基于它的状态改变的.这种类型的设计 ...

  2. 关于http和https淘宝支付宝跨域解决方法研究

    关于http和http跨域淘宝解决方式研究: http://buyer.trade.taobao.com/trade/pay.htm?spm=a1z01.2.3.4.0.wZAGp9&bizO ...

  3. nginx简单实现反向代理和静态资源服务器

    1修改hosts文件 127.0.0.1 www.test1.com 127.0.0.1 www.test2.com 127.0.0.1 static.com 2配置tomcat的server.xml ...

  4. k8s restful API 结构分析

    k8s的api-server组件负责提供restful api访问端点, 并且将数据持久化到etcd server中. 那么k8s是如何组织它的restful api的? 一, namespaced ...

  5. ASP.NET MVC学习---(九)权限过滤机制(完结篇)

    相信对权限过滤大家伙都不陌生 用户要访问一个页面时 先对其权限进行判断并进行相应的处理动作 在webform中 最直接也是最原始的办法就是 在page_load事件中所有代码之前 先执行一个权限判断的 ...

  6. zabbix自定义触发器

    zabbix中监控项仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送告警信息,"触发器"正式 用于为监控项所收集的数据定义阈值,每一个触发器 ...

  7. ANGULARJS: UNDERSTANDING DIRECTIVE SCOPE

    https://www.3pillarglobal.com/insights/angularjs-understanding-directive-scope --------------------- ...

  8. ECSHOP站内页面跳转,避免死链

    2.x版本域名重定向: # For ISAPI_Rewrite 2.x RewriteCond Host: ^steveluo\.name$ RewriteRule (.*) http\://www\ ...

  9. 转: 通过Servlet生成验证码图片

    孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(九)—— 通过Servlet生成验证码图片 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedIma ...

  10. 51nod 125乘法逆元 (扩展欧几里得)

    给出2个数M和N(M < N),且M与N互质.找出一个数K满足0 < K < N且K * M % N = 1,假设有多个满足条件的.输出最小的. Input 输入2个数M, N中间用 ...