本文共 1027 字,大约阅读时间需要 3 分钟。
#include#include #include #include using namespace std;/*问题:程序的输入包含两个整数m和n,其中m max) { int temp = min; min = max; max = temp; } return ( rand() % (max - min + 1) + min );}//生成0~n-1中m个随机选择的不重复的数组成的有序列表vector getRandomVector(int m , int n){ vector results; //前面m个数的直接拷贝 for(int i = 0 ; i < m ; i++) { results.push_back(i); } //后面的随机替换 for(int i = m ; i < n ; i++) { int k = randRange(0 , n - 1); if(k <= m - 1) { results.at(k) = i; } } //替换后的结果注意要排序 sort(results.begin() , results.end()); return results;}void print(vector & results){ if(results.empty()) { cout << "no result" << endl; return; } int size = results.size(); for(int i = 0 ; i < size; i++) { cout << results.at(i) << " "; } cout << endl;}void process(){ int m , n; vector results; while(cin >> m >> n) { results = getRandomVector(m , n); print(results); }}int main(int argc , char* argv[]){ process(); getchar(); return 0;}
转载地址:http://uhofn.baihongyu.com/