问大家一个输出的问题。。
/*输入一个排好序的整数数组(不确定升序还是降序),再输入一个数据,要求按原来排序的顺序将这个整数插入到数组中去。
输入
第一行为测试样本数;
以下每二行为测试样本数据:第一个行输入有序数组序列,第二行输入要插入的数。
输出
每一行是插入后的顺序序列。
样例输入
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*/
#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]<<" ";
}
}
}
1. 我想问下。。怎么才能像案例输出那样输出。。
2. 我这个数组只能输5个数。。。如果要输多的话,怎么做好。。
求详细,谢谢!
[解决办法]
先cin >> 数组个数n
itn **p = new int*[n];
cin >> 然后第一个数组的长度len1
p[0] = new int [len1];
循环cin >>p[0][i];
...
同时upsort和downsort参数修改为(int *p ,int b ,int nLen) // 调用时第一个参数传入p[i]就可以,最后一个传入第i个数组的长度
[解决办法]
用vector就可以