#include <iostream> #include <set> #include <time.h> using namespace std; void getallnum(int *a, int MIN, int MAX, int num) { int i; set<int> m; set<int>::iterator it; srand(time(NULL)); //如果种子(即括号里的time(NULL))为数字,每次生成的数都会跟上一次的相同。 while(m.size() < num) { m.insert(rand()%(MAX - MIN) + MIN); } i = 0; for(it=m.begin(); it!=m.end(); it++) { a[i++] = *it; } } void print(int *a, int num) { int i; for(i=0; i<num; i++) cout<<a[i]<<" "; cout<<endl; } int main(void) { const int MIN = 10; //生成的数最小为MIN const int MAX = 100; //生成的数最大为MAX const int num = 20; //生成20个数 int a[num] = {0}; getallnum(a, MIN, MAX, num); print(a, num); return 0; }