雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

C++抽獎程序?qū)崿F(xiàn)方法

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊:

本文實例講述了C++抽獎程序?qū)崿F(xiàn)方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

一、int rand()可以生成從[0, 65536)之間均勻分布的隨機數(shù)。

現(xiàn)要求實現(xiàn):有30萬員工,使用rand()寫一個抽獎程序,抽出人100獲獎。

#include <iostream> 
#include <set> 
using namespace std; 
typedef set<int> ISET; 
ISET GetPridePersonId(const int num, const int pride_num) 
{   
  int id; 
  ISET iset;   
  while (1) { 
     id = (int)((double)rand() / RAND_MAX * num) % (num - 1); 
     if (iset.find(id) == iset.end()) { 
       iset.insert(id); 
     } 
     if (iset.size() >= pride_num) { 
       break; 
     }      
   }    
   return iset; 
} 
void print(ISET &iset) 
{ 
  ISET::iterator iter; 
  cout<<"item as :\n"; 
  for (iter = iset.begin(); iter != iset.end(); ++ iter) { 
    cout<<*iter<<"\n"; 
  } 
} 
int main(int argc, char **argv)  
{ 
  const int total_person = 300000; 
  const int total_pride_person = 100; 
  ISET iset = GetPridePersonId(total_person, total_pride_person); 
  print(iset); 
  return 0; 
} 

二、主要容易出錯的地方:

①當(dāng)rand()范圍要求擴大的時候,浮點與整形數(shù)之間的強制轉(zhuǎn)換問題。

復(fù)制代碼 代碼如下:
int  randId = (int)((double)rand() / RAND_MAX * num);

②STL中set的使用是否非常熟練?

希望本文所述對大家的C++程序設(shè)計有所幫助。

上一篇:C語言實現(xiàn)在windows服務(wù)中新建進程的方法

欄    目:C語言

下一篇:c++線程池實現(xiàn)方法

本文標(biāo)題:C++抽獎程序?qū)崿F(xiàn)方法

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/3008.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有