跪求:大公司面试:允许使用c c++库函数,如何从1~100个数中,随机取出50个数。要求能实现随机

jyzdtn 2014-12-19 08:21:30
求编码,感激!!!!求贴代码,谢谢
...全文
481 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ithiker 2014-12-20
  • 打赏
  • 举报
回复

#include <iostream>
#include <algorithm>

int current = 0;
int UniqueNumber () { return ++current; }
void printArray(int a[], int size)
{
      for (int i = 0; i < size; ++i)
      {
          std::cout << ' ' << a[i];
          if ((i+1) % 10 == 0)
          {
              std::cout << '\n';
          }

      }
}

int main ()
{
    const int N = 100;
    const int n = 50;
    int initialArray[N];
    int selectArray[n];

    std::generate_n (initialArray, N, UniqueNumber);
    std::cout << "initial array::\n";
    printArray(initialArray, N);
    std::random_shuffle(initialArray, initialArray + N);
    
	std::cout << "\nFirst Array::\n";
    printArray(initialArray, n);

    std::cout << "\nSecond Array::\n";
    printArray(initialArray + n, n);

    return 0;
}


./sample
initial array::
 1 2 3 4 5 6 7 8 9 10
 11 12 13 14 15 16 17 18 19 20
 21 22 23 24 25 26 27 28 29 30
 31 32 33 34 35 36 37 38 39 40
 41 42 43 44 45 46 47 48 49 50
 51 52 53 54 55 56 57 58 59 60
 61 62 63 64 65 66 67 68 69 70
 71 72 73 74 75 76 77 78 79 80
 81 82 83 84 85 86 87 88 89 90
 91 92 93 94 95 96 97 98 99 100

First Array::
 93 52 12 70 25 36 18 37 27 99
 68 40 84 3 76 57 60 19 33 41
 92 87 58 13 15 43 28 63 64 59
 31 97 14 69 4 88 72 65 10 23
 67 81 21 80 90 82 74 1 95 42

Second Array::
 89 29 53 44 17 61 50 8 85 73
 30 62 7 46 54 77 9 34 38 16
 26 56 71 32 83 48 49 11 91 35
 24 75 78 20 86 45 94 55 98 2
 39 96 5 22 100 6 79 66 51 47

li4c 2014-12-20
  • 打赏
  • 举报
回复
for reference only
/*************************************************************************
    > File Name: main2.c
    > Author: jukay
    > Mail: hellojukay@163.com 
    > Created Time: 2014年12月20日 星期六 18时13分14秒
 ************************************************************************/

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

int main()
{
	time_t t;
	int i;
	int a[100];
	srand((unsigned)time(&t));
	for(i=0; i <100; ++i)
	{
		a[i] = rand();
	}

	int tmp;
	for(i = 0 ;i < 50; ++i)
	{
		tmp = rand() % 100;
		printf("%d\t",tmp);
	}

	exit(0);
}
Evankaka 版主 2014-12-19
  • 打赏
  • 举报
回复
#include <iostream> 
#include <cstdlib>
#include <ctime>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
vector<int> num;
srand(unsigned(time(0)));
for(int i =0;i<50;i++)
{
while(1)//插入的是不同的随机数才跳出循环
{
//srand((unsigned)time(NULL));
int in=(rand()%100)+ 1;//生成1-100随机数
if(num.empty())//数组里头还没有数据
{
num.push_back(in);
break;
}
vector<int>::iterator it;
it=find(num.begin(),num.end(),in);
if(it==num.end())//数组中不存在在这个数
{
num.push_back(in);
break;
}
}
}
unsigned int i;
for(i=0;i<num.size();i++)
cout<<num[i]<<endl;
while(1);
return 0;
}


生成50个不重复的1-100r的随机数
sdhongjun 2014-12-19
  • 打赏
  • 举报
回复
#include <stdlib.h> #include <stdio.h> #include <time.h> int main(void) { srand((unsigned)time(NULL)); int nVal = 0; for (int i = 0; i < 50; ++i) { nVal = (rand() % 100) + 1; printf("%d: %d\n", i + 1, nVal); } system("pause>nul"); return 0; }
ithiker 2014-12-19
  • 打赏
  • 举报
回复
SGI STL random_sample

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧