ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

设计抽象数据类型三元组并完成一系列操作

2019-03-28 22:53:10  阅读:282  来源: 互联网

标签:Triplet 一系列 int double element 抽象数据类型 printf 三元组


#include<stdio.h>
#include<stdlib.h>
typedef struct{
double element;
}Triplet;
void creat(Triplet &L, double v1, double v2,double v3) //创建三元组
{
L.element = (double )malloc(3sizeof(double));
if(L.elementNULL)
{
printf(“申请内存失败”);
exit(-1);
}
else
{
(L.element)=v1;
(L.element+1)=v2;
(L.element+2)=v3;
}
}
int Find(Triplet L)
{
int t,h=0;
printf(“请输入要查找的元素”);
scanf("%d", &t);
if(1>t||t>3)
{
printf(“Error 输入非法\n”);
h = 1;
}else{
printf(“元素位置为:%lf\n”, (L.element+t-1));
}
return h;
}
int change(Triplet &L) //改变某一点的值
{
int t,h=0;
printf(“请输入要修改的位置:”);
scanf("%d", &t);
if(t<1||t>3)
{
printf(“ERROR 输入错误”);
h = 1;
}
else
{
printf(“输入要修改的值”);
double w=0;
scanf("%lf", &w);
(L.element+t-1)=w;
}
return h;
}
int Max(Triplet L) //取最大的值
{
int i=0;
double Max=-9999.0;
for(i=0; i<3; i++)
{
if(
(L.element+i)>=Max)
{
Max=
(L.element+i);
}
}
printf(“三元组的最大值为:%lf”,Max);
}
int Min(Triplet L) //取最小的值
{
int i=0;
double Min=9999;
for(i=0; i<3; i++)
{
if(
(L.element+i)<=Min)
{
Min=
(L.element+i);
}
}
printf(“三元组的最小值为:%lf”,Min);
}
int GET(Triplet L) //输出三元组
{
int i=0;
for(i=0; i<3; i++)
{
printf("%lf ", (L.element+i));
}
putchar(’\n’);
}
int sort1(Triplet L) //判断是否为降序排列
{
int i = 0,t=0;
int h;
for(i=0; i<3; i++)
{
if(
(L.element+i)>=
(L.element+i+1))
{
t++;
}
}
if(t
2)
{
printf(“是降序排列”);
h=1;
}
else
{
printf(“不是降序排列”);
h=0;
}
return h;
}
int sort2(Triplet L) //判断是否为升序排列
{
int i = 0,t=0;
int h;
for(i=0; i<3; i++)
{
if(
(L.element+i)<=(L.element+i+1))
{
t++;
}
}
if(t==2)
{
printf(“是升序排列”);
h=1;
}
else
{
printf(“不是升序排列”);
h=0;
}
return h;
}
int destory(Triplet &L) //销毁三元组
{
free(L.element);
return 0;
}
int Menu(Triplet &L)
{
int h = 1;
int fun;
printf("
-------------------------------\n");
printf("| 欢迎! |\n");
printf("|1.取三元组的一个分量 |\n");
printf("|2.置换三元组的一个分量 |\n");
printf("|3.求三元组最的最大分量 |\n");
printf("|4.求三元组最的最小分量 |\n");
printf("|5.显示三元组 |\n");
printf("|6.判断三元组是否降序排列 |\n");
printf("|7.判断三元组是否升序排列 |\n");
printf("|8.退出 |\n");
printf("
-------------------------------*\n");
printf(“输入数字选取您所需要的功能 “);
scanf(”%d”,&fun);
switch(fun)
{
case 1:Find(L);h=1;break;
case 2:change(L);h=1;break;
case 3:Max(L);h=1;break;
case 4:Min(L);h=1;break;
case 5:GET(L);h=1;break;
case 6:sort1(L);h=1;break;
case 7:sort2(L);h=1;break;
case 8:h=0;break;
default:system(“cls”);printf(“非法输入!\n”);h=1;break;
}
return h;
}
int main(void)
{
Triplet L;
int statue=1;
double a1,a2,a3;
printf(“请输入三元组的值:”);
scanf("%lf,%lf,%lf", &a1,&a2,&a3);
creat(L,a1,a2,a3);
system(“cls”);
while(statue)
{
statue = Menu(L);
}
destory(L);
return 0;
}

标签:Triplet,一系列,int,double,element,抽象数据类型,printf,三元组
来源: https://blog.csdn.net/RCxue/article/details/88879534

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有