c語言三元組


// 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;

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM