读书人

把数字按升序排序,该如何处理

发布时间: 2012-09-13 09:51:52 作者: rapoo

把数字按升序排序
首先输入的是一个数字T表示有多少组测试数据,接下来是T组测试数据。每组测试数据会有一个数字N表示有N个数字你需要排序。接着是你需要排序的N个数据。(1 <= n <= 1000,接着的N个数字,每个数字都在int型表示范围内)



对于每组数据,输出排序后的结果。

输出的时候,每个数字之间用一个空格格开。最后一个数字后面没有空格。



Sample Input

2
3 2 1 3
9 1 4 7 2 5 8 3 6 9

Sample Output

1 2 3
1 2 3 4 5 6 7 8 9



求c++或c的代码!!!跪求!

[解决办法]

C/C++ code
#include <iostream>#include<algorithm>#include <vector>using namespace std;int main(){    int n = 0;    cin>>n;    vector<int> num;    char c = ' ';        while (n)    {        int i = 0;        int m;        do         {            cin>>m;            num.push_back(m);        } while (getchar() != '\n');        sort(num.begin(),num.end());        for (int i = 0; i < num.size(); i++)        {            cout<<num[i]<<" ";        }        cout<<endl;        n--;    }}
[解决办法]
查看stl中的sort算法,即可解决楼主的困惑:
http://www.cplusplus.com/reference/algorithm/sort/

还可以按降序排列,参考下面的代码:
C/C++ code
#include <iostream>#include <algorithm>#include <vector>using namespace std;bool ascending (int i,int j) { return (i<j); }bool descending (int i,int j) { return (i>j); }int main () {  int myints[] = {32,71,12,45,26,80,53,33};  vector<int> myvector (myints, myints+8);               // 32 71 12 45 26 80 53 33  vector<int>::iterator it;  // 升序  sort (myvector.begin(), myvector.end(), ascending); // 12 32 45 71(26 33 53 80)  // 结果:  cout << "myvector contains:";  for (it=myvector.begin(); it!=myvector.end(); ++it)    cout << " " << *it;  cout << endl;  // 降序  sort (myvector.begin(), myvector.end(), descending); // 12 32 45 71(26 33 53 80)  // 结果:  cout << "myvector contains:";  for (it=myvector.begin(); it!=myvector.end(); ++it)    cout << " " << *it;  cout << endl;  return 0;} 

读书人网 >C++

热点推荐