亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

想要編寫個函數:使其有序序列插入數據,如下該怎么處理?

想要編寫個函數:使其有序序列插入數據,如下該怎么處理?

蝴蝶不菲 2022-04-16 18:14:59
編寫函數:有序序列插入數據 之二 已有一個按遞增序排列的正整數序列Array,其中任意兩個元素都不同?,F要將一正整數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插入數組后的下標 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;}
查看完整描述

1 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

#include <stdio.h>

#include <stdio.h>
#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<vol;i++)
if(!array[i])
break;
if(i == vol)
return -1;
for(j=0;j<i;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;
}

 


查看完整回答
反對 回復 2022-04-19
  • 1 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號