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樓:張亮 給你寫好了,明天發上來,現在電腦斷網了 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 申請陣列空... 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... 1 首先在電腦上開啟抄c語言程式設計軟襲件。然後建立專案。2 然後匯入stdio.h和stdlib包。再加入malloc包。3 然後定義五個引數。再建立其中兩個引數的空間。4 然後用for語句進行迴圈。再用scanf語句進行接收輸入到二維陣列。5 然後用兩個for語言迴圈。再輸出二維陣列的數值。6 ...C語言程式設計問題(用一維陣列),C語言程式設計問題(用一維陣列)
關於C語言二維陣列的問題,關於c語言二維陣列的問題
c語言二維陣列的賦值,c語言有關二維陣列變數初始化