码迷,mamicode.com
首页 > 编程语言 > 详细

C++两道笔试题

时间:2015-07-10 15:17:50      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:笔试题

//现给定一个含有n个元素的数组,请随机获取其中的m个元素(不能重复获取)。

#include <iostream>
#include <stdlib.h>
using namespace std;
void Grial(int a[], int n,int x)
{
    int *b = new int[x];
    int k = 0;
    int i = n;
    while (x--)
    {
        int j = rand() % i;
        b[k++] = a[j];
        a[j] = a[i - 1];
        i--;
    }
    for (i=0; i < k; i++)
    {
        cout << b[i] << endl;
    }
}
int main()
{
    int a[] = {1,2,3,4,5,6,7,8,9,10};
    Grial(a,sizeof(a)/sizeof(int),4);
    return 0;
}

//题目描述
//现给定n个物品,其概率分别为P1, P2, P3...Pn,请设计一个接口,根据概率,随机获取一个物品。
#include <iostream>
#include <string.h>
#define _N 6
static flags = 0;
using namespace std;
const char *str[_N]={
                   "物品1", "物品2", "物品3", 
                   "物品4","物品5", "物品6",
                   };
const double a[] = {0.1,0.05,0.05,0.4,0.2,0.2};
int index(int x)
{
    int b[] = { 0,0.1 * 100, (0.1+0.05) * 100, (0.05*2+0.1) * 100, 
                (0.4+0.1+0.1) * 100, (0.2+0.4+0.2) * 100,100 };
    int i = 0;
    for (; i < _N; i++)
    {
        if (b[i] < x && b[i + 1] >= x)
            return i + 1;
    }
    flags = 1;
    return 0;
}
const char *Grial()
{
    return str[index(rand() % 100)];
}
int main()
{
    cout << Grial() << endl;
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++两道笔试题

标签:笔试题

原文地址:http://blog.csdn.net/liuhuiyan_2014/article/details/46829815

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!