C程式編寫,將數插入到已經有序的陣列裡,要求保持有序

時間 2021-07-01 02:02:51

1樓:珈藍惜夢

源程式如下:

#define _crt_secure_no_warnings

#include

int main()

printf("請輸入想插入的數字\n");//輸入要插入的數字

scanf("%d", &k);

for (i = 0; i <= n; i++)//迴圈遍歷

for (i = 0; i < n; i++)//迴圈遍歷

}for (j = 0; j < n; j++)//氣泡排序,將陣列數列排好}}

for (j = 0; j < n + 1; j++)//順序輸出

程式輸出結果如下:

擴充套件資料:

/*#include//感覺用二分法不錯 直接插入排序也不錯

//插入函式 往有序的陣列a裡插入值為element的元素使陣列a依然有序

//演算法思想大概就是從頭開始遍歷找到第一個大於element的數 然後插入 然後後面的元素依次移動。

void insert_array(int *a,int length,int element)

}  if(f!=1)//當element大於所有陣列元素時候

for(i=0;i

}int main()

; int e=7;

insert_array(a,5,e);}

2樓:匿名使用者

【例】把一個整數按大小順序插入已排好序的陣列中。

為了把一個數按大小插入已排好序的陣列中,應首先確定排序是從大到小還是從小到大進行的。設排序是從大到小進序的,則可把欲插入的數與陣列中各數逐個比較,當找到第一個比插入數小的元素i時,該元素之前即為插入位置。然後從陣列最後一個元素開始到該元素為止,逐個後移一個單元。

最後把插入數賦予元素i即可。如果被插入數比所有的元素值都小則插入最後位置。

main()

; for(i=0;i<10;i++)

a[i]=n;

for(i=0;i<=10;i++)

printf("%d ",a[i]);

printf("\n");

} 本程式首先對陣列a中的10個數從大到小排序並輸出排序結果。然後輸入要插入的整數n。再用一個for語句把n和陣列元素逐個比較,如果發現有n>a[i]時,則由一個內迴圈把i以下各元素值順次後移一個單元。

後移應從後向前進行(從a[9]開始到a[i]為止)。 後移結束跳出外迴圈。插入點為i,把n賦予a[i]即可。

如所有的元素均大於被插入數,則並未進行過後移工作。此時i=10,結果是把n賦於a[10]。最後一個迴圈輸出插入數後的陣列各元素值。

程式執行時,輸入數47。從結果中可以看出47已插入到54和 28之間。

3樓:朱傑遜

如所有的元素均大於被插入數,則並未進行過後移工作。此時i=10,結果是把n賦於a[10]。最後一個迴圈輸出插入數後的陣列各元素值。這個地方不理解

4樓:匿名使用者

main()

;int t1,t2,num,end,i,j;

printf("\narray a:\n");

for(i=0;i<10;i++)

printf("%4d",a[i]);

printf("\n");

printf("insert data:");

scanf("%d",&num);

end=a[9];

if(num>end)

a[10]=num;

else

break;}}

}printf("now,array a:\n");

for(i=0;i<11;i++)

printf("%4d",a[i]);

getch();}

在c語言中,將數插入陣列中的程式怎麼寫

有一個已排好序 從大到小 的陣列有5個元素,從鍵盤輸入一個數,要求按原排序的規律將它插入到陣列中 5 i if x2.j i 當這個數比當前數小時,用j記住當前位置,即j i,中斷迴圈。比當前數大時繼續下一個 小應當在左側,大則在右側 3.break for i 5 i j i a i 1 a i ...

將100到200之間的素數輸出c語言程式

半清醒丶不言語 如下 include int main int i 0 for i 100 i 200 i int j 0 for j 2 j i 1 j if i j 0 break if j i printf d i return 0 結果如下 拓展資料 素數,除了1 和它本身不能被其他數整除的...

編寫c語言假設a陣列中的數按由大到小的順序存放把a陣列中相同的數刪除得只剩然後以每行數的形式

楊曉磊 我寫的程式,執行的前提是a中的數必須按大小順序排列 看不懂請追問 include define n 80 n必須大於要處理資料的個數int fun int a,int n a j 0 return j void main 注意,大括號的內容為你要處理的資料int i,n 20 n為資料的真實...