include<stdio.h>
include<stdlib.h>
define OK 1
define ERROR 0
define OVERFLOW -2
typedef int Status;
typedef float ElemType;
typedef ElemType *Triplet; // 声明Triplet为ElemType指针类型
//三元组的初始化
Status initTriplet(Triplet &T, ElemType v0, ElemType v1, ElemType v2)
{
T = ElemType malloc(3sizeof(ElemType)); if T == NULL
{
printf(“分配内存失败!”);
exit(OVERFLOW);
}
T[0] = v0;
T[1] = v1;
T[2] = v2;
return OK;
}
//释放内存,退出系统, 注意:动态分配内存需要及时释放内存空间
void destroyTriplet(Triplet &T)
{
free(T) ;
printf(“分配内存已释放!”);
exit(0);
}
// 用e获取T的第i(1~3)个元素的值,
Status getElem(Triplet T, int i, ElemType &e)
{
if (i < 1 || i > 3)
return ERROR;
else e = T[i-1] ;
return OK;
}
// 置T的第i元的值为e
Status putElem(Triplet &T,int i,ElemType e)
{
if (i < 1 || i > 3)
return ERROR;
else T[i-1] = e ;
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(“调用初始化函数后,T的三个值为:%.1f,%.1f,%.1f\n”, T[0], T[1], T[2]);
// 调用函数获得T的第2元的值
getElem(T, 2, e) ;
printf(“三元组第2元的值为:%.1f\n”,e);
// 调用函数修改T的第2元的值为56.7
putElem(T, 2, 56.7) ;
// 再次输出T的第2元的值
printf(“三元组第2元的值改成了:%.1f\n”,T[1]);
destroyTriplet(T);
return 0;
}
正确答案
第一空:
ElemType *或 Triplet
第二空:
T == NULL或!T
第三空:
free(T)
第四空:
e = T[i-1]
第五空:
T[i-1] = e
第六空:
getElem(T, 2, e)
第七空:
putElem(T, 2, 56.7)