排序后却没成功>.<

Home Home
引用 | 编辑 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