引用 | 编辑
minieudaemon
2008-04-17 14:51 |
楼主
▼ |
||
x0
各位大大题目是要将两个一维整数阵列合并成一个由小到大的阵列 小弟的作法是先合并后再用气泡排序去排...我合并成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 << .. 访客只能看到部份内容,免费 加入会员 x0
|
引用 | 编辑
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 测试通过 有些地方我是调试时改的 有些是我拿掉的 大大可能还要稍微修一下 x1 |
引用 | 编辑
minieudaemon
2008-04-18 00:30 |
2楼
▲ |
谢谢大大的解答^^
大大把我原本设的bubble 函数改掉...改成在主程式中...^^ 我刚刚run了一下....我的是Dev C++ 4.9.8.0....跑的结果是 是排序了...不过好像前面还有一些不太懂的数字...嗯..待会再 去仔细一行一行的看....感谢大大的回答.... x0 |