c語言問題把一維陣列的nn元素按由小到大

2021-04-17 20:48:46 字數 4786 閱讀 6370

1樓:匿名使用者

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int a[22];

int main()

{int i;

cout<<"輸入10個整數"<>a[i];

sort(a,a+10);

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

cout<

2樓:匿名使用者

根據題bai意可得代du碼zhi:

#include

#define n 10

int main()

//選擇dao排序

專for (i = 0; i < n-1; ++i)}if (k != i)

}//輸出

屬for (i = 0; i < n; ++i)printf ("\n");

return 0;}

3樓:

這個簡單啊 用一個for迴圈逐個比較就是 然後再用一個for迴圈輸出比較後的陣列就行了

急:c語言中用冒泡發對10個一維陣列按從小到大順序排序,並輸出。

4樓:匿名使用者

氣泡排序法,準確的形式應該是這樣的:

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

for(j=0;j<10-i-1;j++)if(a[j]>a[j+1])

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

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

printf("\n");

5樓:匿名使用者

其實,是你的兩個迴圈錯了,for(i=0;i<9;i++) for(j=0;j<10-i;j++) 這兩個迴圈應該這樣寫for(i=1;i,開始i=1,j<9,則迴圈是從j=0到j=8 ,這樣迴圈9次,也就是第一個數和後面9個數做比較,以下依次比較到最後,輸出結果。

6樓:匿名使用者

j不可能為9;這樣你的兩個問題都解決了!

#include

main()

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

for(j=0;j<9-i;j++)    //j<10-1-i   這裡錯了

if(a[j]>a[j+1])

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

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

printf("\n");}

7樓:匿名使用者

同學,首先解決問題1:

你的第一個問題分析的正確,a[10]的確越界了,這裡越是你需要再處理一次的地方,每次其實j不應該到10-i而是10-i-1;為什麼能夠執行呢?

vs是下不行的。vc 6下沒有檢查資料邊界,所以可以正常執行。我這邊除錯的時候顯示a[10]也就是你說的越界的那個元素的值預設為:

1638280 所以呢,肯定不會因為if(a[j]>a[j+1])影響你的排序。

所以貌似可以正常執行。(你要是會除錯肯定沒有這個問題了)

問題2就是你理解的問題了,氣泡排序就是每次把最大的一個放到最後,那麼下一輪就不需要該輪拍到最後的元素,例如 4 3 2 1變成 3 2 1 4 那麼排的時候就不用考慮4了。到最後一輪時,本身只要排j=0的那麼多拍了j=1 也是沒有影響的,後面的都比之前的大,自然不要比較了啊!!!

說的也不是很清楚,希望可以解決你心頭的疑惑。 求採納哦!! (*^__^*) 嘻嘻……

c語言 使用氣泡排序將一維陣列a中的n個元素升序排列

8樓:59分粑粑

方法和詳細的操作步驟如下:

1、第一步,開啟c檔案,定義一組序列和要排序的各種變數,然後處理排序邏輯,具體的**見下圖,轉到下面的步驟。

2、第二步,完成上述步驟後,氣泡排序的邏輯是一組數字從第一個值開始,如果兩個相鄰數字的順序與期望的順序不同,則會交換兩個數字的位置。 重複此過程,直到最後一個數字。如果需要交換,則排序完成,實現的**見下圖,轉到下面的步驟。

3、第三步,完成上述步驟後,編譯並執行程式,就獲得了想要的結果了,見下圖。這樣,就解決了這個問題了。

9樓:離歌亮仔仔

我這給出一個不用指標,不用手動分配記憶體空間的相對 精簡易懂 的方法

#include

int main()

}printf("排序結果:\n");

for(i=0;i

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

printf("\n");

return 0;}

10樓:2013努力實現

#include

#include

int main()

printf("請為%d個元素賦值如 1 2 3\n",n);

for(i=0;ip[j+1])

}printf("排序結果!\n");

for(i=0;i

printf("%5d",p[i]);

printf("\n");

return 0;}

11樓:迴歸╮幼稚

#include

int main()

{int t,i,j,a[100],n;

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

for(i=1;i

12樓:示申僉

#include "stdio.h"

int main()

for(i=0;i結果:

求c語言程式設計:1~宣告有n個元素的一維陣列,隨機輸入n個元素的值,輸出n個元素 2~對陣列進行排序(

13樓:匿名使用者

呵呵,時間不早了,謝謝都睡了,就給樓主送點福利吧。我就一碼農,不為分數而來!

想起了8年前我苦心學c語言的艱難,沒有電腦,沒有師傅,**都寫在草稿紙上的。

希望你能好好學習程式設計,**寫的很詳細了。

多讀,多看,多寫,多除錯。

先貼效果:

1---------隨機陣列初始化為:

28 95 15 42 43 25 5 10 76 35

2---------陣列排序後的結果為:

5 10 15 25 28 35 42 43 76 95

3---------請輸入x值,查詢是否存在

25存在第 4 個位置

4---------輸入x值,插入陣列中。

35插入後的陣列為

5 10 15 25 28 35 35 42 43 76

5---------輸入您要刪除的元素x

355 10 15 25 28 42 43 76 -1 -1

請按任意鍵繼續. . .

再貼源**:

#include "stdio.h"

#include "conio.h"

#include

#include

#include

//給定陣列,列印出來

void printarray(int a,int n)

} //從最後一個開始,元素後移動,陣列長度不夠,最後一個會丟失的

if(pos>=0&&pospos;i--)

a[pos]=key;

}} //給定陣列和要刪除的值key 刪除所有和key相等的值

void deletearray(int a,int key,int n)

a[k]=-1;//最後用-1 替換掉

i=i-1;//推回一格,重複的元素也要刪除掉 }}

}main()

;int x=0,pos=-1;

time_t t;

srand((unsigned)time(&t));

//隨機初始化陣列

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

printf("\n1---------隨機陣列初始化為:\n");

printarray(a,10);

printf("\n2---------陣列排序後的結果為:\n");

bubblesort(a,10);

printarray(a,10);

printf("\n3---------請輸入x值,查詢是否存在\n");

scanf("%d",&x);

pos=i***ist(a,x,10);

if(pos==-1)

printf("不存在!\n");

else

printf("存在第 %d 個位置\n",pos+1);

printf("\n4---------輸入x值,插入陣列中。\n");

scanf("%d",&x);

insertarray(a,x,10);

printf("插入後的陣列為\n");

printarray(a,10);

printf("\n5---------輸入您要刪除的元素x\n");

scanf("%d",&x);

deletearray(a,x,10);

printarray(a,10);

system("pause");}

14樓:張亮

給你寫好了,明天發上來,現在電腦斷網了

C語言程式設計問題(用一維陣列),C語言程式設計問題(用一維陣列)

include void main int i,j,n,k,x,a 100 scanf d d n,x k n for i 0 i include include int main int i,j,n,x,a scanf d d n,x a int calloc n,sizeof int 申請陣列空...

關於C語言二維陣列的問題,關於c語言二維陣列的問題

include void main for i 0 i 3 i for i 0 i 3 i for j 0 j 7 2 j printf change after n for i 0 i 3 i 1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 217...

c語言二維陣列的賦值,c語言有關二維陣列變數初始化

1 首先在電腦上開啟抄c語言程式設計軟襲件。然後建立專案。2 然後匯入stdio.h和stdlib包。再加入malloc包。3 然後定義五個引數。再建立其中兩個引數的空間。4 然後用for語句進行迴圈。再用scanf語句進行接收輸入到二維陣列。5 然後用兩個for語言迴圈。再輸出二維陣列的數值。6 ...