把数字按升序排序,该如何处理
把数字按升序排序
首先输入的是一个数字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的代码!!!跪求!
------解决方案--------------------
首先输入的是一个数字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; }