C语言 急!!!! 10

Description已有一个按递增序排列的正整数序列Array,其中任意两个元素都不同。现要将一正整数Key插入到序列Array中,并且依然保持Array的递增序。在此... Description
已有一个按递增序排列的正整数序列Array,其中任意两个元素都不同。现要将一正整数Key插入到序列Array中,并且依然保持Array的递增序。在此过程中,按判定顺序有可能出现以下几种情况:
1. 序列Array已经达到其容量上界;
2. 序列Array中已经有与Key相等的元素存在;
3. 序列Array既没有满,也没有与Key相等的元素,则Key可以插入序列Array之中,应获得其Key插入序列Array后所在的下标(从0开始)。
编写函数getarray()、getkey()、insert()和result():
原型:int getkey(int key[]);
功能:按输入格式读取所有的待插入值,存放到整型数组key[]里,返回key[]中元素个数。
原型:int getarray(int array[]);
功能:按输入格式读取一个序列,存放到整型数组array[]里。
原型:int insert(int array[], int key, int vol);
功能:将key插入到整型数组array[]里,vol是array[]容量上限。根据题意描述的三种情况返回不同的值(你自己设计)。
原型:int result(int flag);
功能:结合insert()函数的返回值,根据输出格式和参数flag,产生不同的输出。
函数的调用格式见“Append Code”。
Input
输入的一个数是M,表示后面有M组测试数据。
每组测试数据有两部分组成:2行输入。第一部分是序列Array中的元素,最多不超过1000个,当读到0时表示序列输入结束。第二部分开始是一个正整数N(N较小),后面跟着N个待插入Array中的正整数key。
Output
输出为M行,每一行代表上述每一组输入的插入结果。其中:
如果存放序列的数组已满,则输出:“The array if full!”
如果序列中已经有Key,则输出:“The key is already in this array!”
如果Key可以插入Array,则输出:“The key is inserted in position x”. 其中x是Key插入数组后的下标。
Sample Input
2
2 4 6 8 10 0
6 1 3 5 7 9 10
1 2 3 4 5 6 7 8 9 10 11 ······1000 0
2 1 3000
Sample Output
Case 1:
The key is inserted in position 0.
The key is inserted in position 2.
The key is inserted in position 4.
The key is inserted in position 6.
The key is inserted in position 8.
The key is already in this array!
Case 2:
The array if full!
The array if full!
HINT
Append Code
append.c,
int main()
{
int array[MAX_SIZE], cases, ca, i, key[MAX_SIZE], size;
scanf("%d", &cases);
for(ca = 1; ca <= cases; ca++)
{
getarray(array);
size = getkey(key);
printf("Case %d:\n", ca);
for(i = 0; i < size; i++)
result(insert(array, key[i], MAX_SIZE - 1));
}
return 0;
}
getkey函数怎么写?
展开
 我来答
一变班爱麻啊堡0J
高粉答主

2020-01-13 · 醉心答题,欢迎关注
知道答主
回答量:11.4万
采纳率:2%
帮助的人:5718万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式