Description:現(xiàn)有一個正整數(shù)數(shù)組Array,以0表示數(shù)組的結(jié)束。其中任意2個元素都不同,而且已經(jīng)按照遞增序排列。另有一個整數(shù)Key>0。要將Key插入到數(shù)組Array中,并保證插入之后的數(shù)組依然保持遞增序。在插入過程中,會有以下情況出現(xiàn):
1. 數(shù)組Array已經(jīng)達到其容量上界Vol,此時應(yīng)返回結(jié)果-1。
2. 數(shù)組Array中已經(jīng)有與Key相等的元素存在,此時應(yīng)返回結(jié)果-2。
3. 如果Array既沒有滿,也沒有與Key相等的元素,則應(yīng)返回Key在數(shù)組Array中插入的位置,即Key插入Array后所在的下標(biāo)。
要求編寫一個函數(shù)int insert(int array[],int key,int vol)實現(xiàn)上述插入操作,其中: array[]:需插入元素所在的數(shù)組; key:待插入的元素;
vol:array數(shù)組的最大容量,即數(shù)組中最多可以容納的數(shù)值個數(shù)。
樣例中已經(jīng)包含上述三種可能的情形。上述情況按照上述順序依次判斷,即先判斷Array是否已滿,再判斷Array是否已經(jīng)有Key。
注意:主函數(shù)已經(jīng)給出,只需提交insert函數(shù)的代碼以及必要的預(yù)處理命令。
Input:輸入分為多行。第一行是M,表示后面有M組測試數(shù)據(jù)。
每組測試數(shù)據(jù)有2行輸入。第一行是Array中的元素,不超過1000個,以數(shù)字“0”表示該行數(shù)據(jù)的結(jié)束。第二行是要插入Array中的數(shù)值Key。
Output:輸出為M行,每一行代表上述每一組輸入的插入結(jié)果。其中:如果數(shù)組已滿,則輸出:“The array if full!”
如果數(shù)組中已經(jīng)有Key,則輸出:“The key is already in this array!”
如果Key可以插入Array,則輸出:“The key is inserted in position x”. 其中x是Key插入數(shù)組后的下標(biāo)。
您可能感興趣的試卷
你可能感興趣的試題
執(zhí)行下面的程序后,a的值為()
A.7
B.8
C.9
D.10
兩次運行下面程序,如果從鍵盤上分別輸入6和4,則程序的輸出結(jié)果是()
A.7和5
B.6和3
C.7和4
D.6和4
以下程序中,while循環(huán)的循環(huán)次數(shù)是()。
A.1
B.10
C.6
D.死循環(huán),不能確定次數(shù)
最新試題
在C語言中,將屬于不同類型的數(shù)據(jù)作為一個整體來處理時,常用()。
完善下面程序中xxkl函數(shù)的定義,使程序能夠輸出數(shù)組a中所有元素的最大值。
Polya的問題求解四步法不包括()。
下面不是C語言特點的是()。
計算機能干什么?()
名為printf的函數(shù)可以完成程序指定的輸出,它是C語言本身自有的一個關(guān)鍵字。
設(shè)x=2.3,a=8,y=4.8,則條件表達式a>x+y值為()。
程序中出現(xiàn)的諸如0、300、20等數(shù)字稱為幻數(shù),通常用變量或者符號常量來替代以明確其物理意義。
整型的標(biāo)示符關(guān)鍵字為(),單精度實型標(biāo)示符關(guān)鍵字為()。
函數(shù)getchar()的作用是:輸出一個字符。