永发信息网

Problem I: 编写函数:有序序列插入数据 已有一个按递增序排列的正整数序列Array

答案:1  悬赏:40  手机版
解决时间 2021-03-08 20:58
  • 提问者网友:遮云壑
  • 2021-03-08 10:26
Problem I: 编写函数:有序序列插入数据 已有一个按递增序排列的正整数序列Array,其中任意两个元素都不同。现要将一正整数Key插入到序列Array中,并且依然保持Array的递增序。在此过程中,按判定顺序有可能出现以下几种情况:1. 序列Array已经达到其容量上界;2. 序列Array中已经有与Key相等的元素存在;3. 序列Array既没有满,也没有与Key相等的元素,则Key可以插入序列Array之中,应获得其Key插入序列Array后所在的下标(从0开始)。编写函数getarray()、insert()和result():原型: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时表示序列输入结束。第二部分是一个正整数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 Input31 2 3 021 2 4 5 6 7 8 9 10 031 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
最佳答案
  • 五星知识达人网友:佘樂
  • 2021-03-08 10:39
#include

#include
#define MAX_SIZE 1000
void getarray(int array[])
{
int i= 0;
for(i = 0; i < MAX_SIZE; i++)
{
scanf("%d",&array[i]);
if(array[i] == 0)
break;
}
;
}
int insert(int array[],int key,int vol)
{
int i, j;
for(i=0;i if(!array[i])
break;
if(i == vol)
return -1;
for(j=0;j if(array[j]==key)
return -2;
else
if(array[j]>key) break;
return j;
}
int result(int flag)
{
if(flag==-1)
printf("The array if full!\n");
else if(flag==-2)
printf("The key is already in this array!\n");
else
printf("The key is inserted in position %d\n", flag);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯