奇偶数分离问题

来源:互联网 发布:辐射4杰洛特捏脸数据 编辑:程序博客网 时间:2024/06/05 09:15
描述
有一个整型偶数n(2<= n <=10000),你要做的是:先把1到n中的所有奇数从小到大输出,再把所有的偶数从小到大输出。
输入
第一行有一个整数i(2<=i<30)表示有 i 组测试数据;
每组有一个整型偶数n。
输出
第一行输出所有的奇数
第二行输出所有的偶数
样例输入
21014
样例输出
1 3 5 7 9 2 4 6 8 10 1 3 5 7 9 11 13 2 4 6 8 10 12 14 
参考网络代码后,第一次成功代码:
#include <iostream>#include <vector>using namespace std;int main(){int num;cin >> num;int x[10000];for(int i=0;i<num;i++){cin >> x[i];}vector<int>a, b;for (int i = 0; i < num; i++){for (int j = 1; j <= x[i]; j++){if (j % 2)a.push_back(j);elseb.push_back(j);}for (int j = 0; j < a.size(); j++){cout << a.at(j) << " ";}cout << endl;for (int j = 0; j < a.size(); j++){cout << b.at(j) << " ";}cout << endl << endl;a.clear();b.clear();}}

内存 312 用时8  但是定义了一个变量为10000的数组,网上的参照程序直接用的X[NUM],自己编译不行,但提交确能成功。
第二次没用数组,并把分离奇偶数的部分作为函数写在主程序外,自己编译通过,提交不行。
#include <iostream>#include <vector>using namespace std;void depart(int x){vector<int>a, b;for (int j = 1; j <= x; j++){if (j % 2)a.push_back(j);elseb.push_back(j);}for (auto p = a.begin(); p!= a.end(); p++)cout << *p << " ";cout << endl;for (auto p = b.begin(); p!= b.end(); p++)cout << *p << " ";cout << endl << endl;}int main(){int num,x;cin >>num;vector<int>input;for (int i = 0; i < num; i++){cin >> x;input.push_back(x);}for (int i = 0; i < num; i++){int t = input.at(i);depart(t);}return 0;}

0 0