首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

插入整数到数组,然后排序,有个地方出了有关问题,多谢

2013-04-21 
插入整数到数组,然后排序,有个地方出了问题,求助谢谢//2.输入一个排好序的整数数组(不确定升序还是降序),

插入整数到数组,然后排序,有个地方出了问题,求助谢谢

//2.输入一个排好序的整数数组(不确定升序还是降序),再输入一个数据,
//要求按原来排序的顺序将这个整数插入到数组中去。

#include<iostream>
using namespace std;

void upsort(int a[6],int b)
{
a[5] = b;
int temp;
for(int i=4;i>=0;i--)
{
if(a[i+1]<a[i])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
else
break;
}
}

void downsort(int a[6],int b)
{
a[5] = b;
int temp;
for(int i=4;i>=0;i++)
{
if(a[i+1]>a[i])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
else
break;
}
}

void main()
{
int a[6],b,t;
cin>>t;
for(int i=0;i<t;i++)
{
for(int j=0;j<5;j++)
{
cin>>a[j];
}
cin>>b;
if(a[0]<a[1])
upsort(a,b);
else
downsort(a,b);
for(int k=0;k<6;k++)
{
cout<<a[k]<<" ";
}
}
}

要求
样例输入
2
1 3 5 7 9
6
8 6 4 2 1
7
样例输出
1 3 5 6 7 9
8 7 6 4 2 1
升序的已测试,没问题,但是降序的估计是出了问题,但是又看不出来,因为我一试8 6 4 2 1 ,7就出现错误。。。请大家帮忙指出错误谢谢!!
[解决办法]

void downsort(int a[6],int b)
{
    a[5] = b;
    int temp;
    for(int i=4;i>=0;i--)   这里应该是i--呀,同志啊!参见upsort的写法
    {
        if(a[i+1]>a[i])
        {
            temp = a[i];
            a[i] = a[i+1];
            a[i+1] = temp;
        }
        else
            break;
    }
}

热点排行
Bad Request.