引用 | 編輯
minieudaemon
2008-04-17 14:51 |
樓主
▼ |
||
![]() 題目是要將兩個一維整數陣列合併成一個由小到大的陣列 小弟的作法是先合併後再用氣泡排序去排...我合併成num後 是正常的...但帶入bubble函數後...卻沒有排序.. 請教各位大大...程式中那裡出錯了呢??...小弟剛學C...希望 各位大大能多多指點.... #include <iostream> #include <cstdlib> using namespace std; void bubble(int a[]); //氣泡排序 int main(void) { int data1={8,10,18,4,30}; int data2={7,8,31,52,35}; int i,j,k; int num; for(i=0,k=0;i<5,k<5;i++,k++) //先將兩個陣列合併到num陣列 num=data1; for(j=0,k=5;j<5,k<10;j++,k++) num=data2; cout << "目前陣列合併後..新陣列:"; for(k=0;k<10;k++) cout << .. 訪客只能看到部份內容,免費 加入會員 ![]()
|
引用 | 編輯
rchockxm
2008-04-17 19:47 |
1樓
▲ ▼ |
由大到小排列:
複製程式 #include <iostream> #include <cstdlib> using namespace std; int main(void) { int data1[5]={8,10,18,4,30}; int data2[5]={7,8,31,52,35}; int i,j,k; int num[10]; for(i=0,k=0;i<5,k<5;i++,k++) //先將兩個陣列合併到num陣列 num[k]=data1[i]; for(j=0,k=5;j<5,k<10;j++,k++) num[k]=data2[j]; cout << "目前陣列合併後..新陣列:"; for(k=0;k<10;k++) { cout << num[k] << " "; } cout << endl; //合併後列出是正常的 int temp; for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(num[j+1]>num[j]) { temp=num[j+1]; num[j+1]=num[j]; num[j]=temp; } } } cout << "經排序後 :"; for(k=0;k<10;k++) { cout << num[k] << " "; } cout << endl; system("pause"); } Dev C++ 4.9.9.2 測試通過 有些地方我是調試時改的 有些是我拿掉的 大大可能還要稍微修一下 ![]() ![]() |
引用 | 編輯
minieudaemon
2008-04-18 00:30 |
2樓
▲ |
謝謝大大的解答^^
大大把我原本設的bubble 函數改掉...改成在主程式中...^^ 我剛剛run了一下....我的是Dev C++ 4.9.8.0....跑的結果是 是排序了...不過好像前面還有一些不太懂的數字...嗯..待會再 去仔細一行一行的看....感謝大大的回答.... ![]() |