![]() |
#2
qq10235692232011-05-11 08:14
|
设有有序(值从小到大)的两组数据,讲这两组数据有序合并(合并过程数组始终保持有序)。
我想用那个选择排序的方法来做。(上次问过一次可是我还是不懂。啊啊啊啊啊

我写出来是这样的:

#include <iostream>
using namespace std;
void main()
{
int i,j,k,t;
int a[4],b[7],c[12];
cout<<"请输入a组数的5个数值(取值从大到小):"<<endl;
for(i=0;i<4;i++)
cin>>a[i];
cout<<"请输入b组数的8个数值(取值从大到小):"<<endl;
for(j=0;j<7;j++)
cin>>b[j];
for(k=0;k<12;k++)
for(j=k+1;j<11;j++)
for(i=j+1;i<10;i++)
if(a[i]>b[j])
{t=a[i];a[i]=c[k];c[k]=t;}
if(a[i]<b[j])
{t=b[i];a[i]=c[k];c[k]=t;}
cout<<"数组c:"<<endl;
for(k=0;k<12;k++)
cout<<c[k]<<" ";
cout<<endl;
}
using namespace std;
void main()
{
int i,j,k,t;
int a[4],b[7],c[12];
cout<<"请输入a组数的5个数值(取值从大到小):"<<endl;
for(i=0;i<4;i++)
cin>>a[i];
cout<<"请输入b组数的8个数值(取值从大到小):"<<endl;
for(j=0;j<7;j++)
cin>>b[j];
for(k=0;k<12;k++)
for(j=k+1;j<11;j++)
for(i=j+1;i<10;i++)
if(a[i]>b[j])
{t=a[i];a[i]=c[k];c[k]=t;}
if(a[i]<b[j])
{t=b[i];a[i]=c[k];c[k]=t;}
cout<<"数组c:"<<endl;
for(k=0;k<12;k++)
cout<<c[k]<<" ";
cout<<endl;
}
可是它输出的时候不对。全部是很大位数的数字。T-T求老师啊~我纠结了好几天了。555555...
