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為資料的真實...