• 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 ",e);

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

    printf("当前三元组中的最小值为%d ", 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;

    }

  • 相关阅读:
    hdu 4747 Mex( 线段树? 不,区间处理就行(dp?))
    hdu 5692 Snacks(dfs时间戳+线段树)
    hdu 1864 最大报销额(背包)
    hdu 2955 Robberies(概率背包)
    hdu 4055 Number String (基础dp)
    4516: [Sdoi2016]生成魔咒
    2555: SubString
    后缀自动机·小记
    CF 1114 E. Arithmetic Progression
    CF 1114 D. Flood Fill
  • 原文地址:https://www.cnblogs.com/paulversion/p/7526927.html
Copyright © 2020-2023  润新知