溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)程序

發(fā)布時(shí)間:2021-09-13 10:01:34 來(lái)源:億速云 閱讀:522 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要講解了“怎么用C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)程序”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么用C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)程序”吧!

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)抽獎(jiǎng)小程序的具體代碼,供大家參考,具體內(nèi)容如下

#include<stdio.h>
#include<stdlib.h>
#include <time.h> // 使用當(dāng)前時(shí)鐘做種子
#include <windows.h>
/* 
做一個(gè)抽獎(jiǎng)程序,一等獎(jiǎng)1%二等獎(jiǎng)5%三等獎(jiǎng)10%
要求1:基本功能實(shí)現(xiàn),按下任意字母按鍵打印一次抽獎(jiǎng)結(jié)果。
要求2:程序開始的時(shí)候可以選擇模式,鍵盤A鍵按下,代表自動(dòng)模式;M代表手動(dòng)模式,自動(dòng)模式抽獎(jiǎng)可以一直抽,直到抽到1等獎(jiǎng)為止。
要求3:在要求2的前提下,(自動(dòng)模式)先打印第一次抽到三等獎(jiǎng)所需要的次數(shù),然后打印第一次抽到二等獎(jiǎng)所需要的次數(shù),最后打印第
一次獲得一等獎(jiǎng)所需要的次數(shù),程序結(jié)束
*/

//隨機(jī)數(shù)取段落,保證抽到的誤差較小 
#define CJ_game(a) if(a>=0&&a<=327) printf("恭喜你!獲得一等獎(jiǎng)!!\n");\
     else if(a>=4000&&a<=5638) printf("恭喜你!獲得二等獎(jiǎng)?。n");\
     else if(a>=400&&a<=3676) printf("恭喜你!獲得三等獎(jiǎng)??!\n");\
     else printf("再接再厲\n") 

void CJ_mode_auto()  //自動(dòng)模式 
{
 int First_f = 0,Second_f = 0,Third_f = 0;  //定義第一次抽取到獎(jiǎng)品的標(biāo)志位 
 int Sjs = 0,Game_state = 1; 
 int F_count = 0,S_count = 0,T_count = 0,count = 0;//定義抽到獎(jiǎng)品的計(jì)數(shù)位 
 printf("\n"); 
 printf("\n"); 
 printf("==========模式A:自動(dòng)抽獎(jiǎng) 游戲開始==========\n"); 
 while(Game_state)
 {
  Sleep(200);
  Sjs=rand();
  CJ_game(Sjs);
  count++;
 // printf("%d\n",count); //測(cè)試位 
  if(Sjs >= 400 && Sjs <= 3676)
  {
   T_count++;
   if(T_count == 1)
   {
    Third_f = count;
   }
  }
  if(Sjs >= 4000 && Sjs <= 5638)
  {
   S_count++;
   if(S_count == 1)
   {
    Second_f = count;
   }
  }
  if(Sjs >= 0 && Sjs <= 327)
  {
   F_count++;
   if(F_count == 1)
   {
    First_f = count;
   }
  }
  if(First_f && Second_f && Third_f)
  {
   Game_state = 0;
  }
 }
 printf("第一次抽到一等獎(jiǎng)所需要的次數(shù)為:%d\n",First_f);
 printf("第一次抽到二等獎(jiǎng)所需要的次數(shù)為:%d\n",Second_f);
 printf("第一次抽到三等獎(jiǎng)所需要的次數(shù)為:%d\n",Third_f);
 printf("抽到一等獎(jiǎng)的總次數(shù)為:%d\n",F_count);
 printf("抽到二等獎(jiǎng)的總次數(shù)為:%d\n",S_count);
 printf("抽到三等獎(jiǎng)的總次數(shù)為:%d\n",T_count);
 printf("=====請(qǐng)選擇新的游戲模式:M:手動(dòng),A:自動(dòng)=====\n");
}



void CJ_mode_handch(void)  //手動(dòng)抽獎(jiǎng) 
{
 char ch; 
 int Sjs;
 printf("\n");
 printf("\n"); 
 printf("==========模式M:手動(dòng)抽獎(jiǎng) 游戲開始==========\n"); 
 printf("==========按0退出自動(dòng)模式==========\n"); 
 while(1)
 {
  printf("=====請(qǐng)輸入一個(gè)字母:");
  //scanf(" %c",&ch);  //如果需要輸入字符然后回車的,需要在%c前面加空格或者\(yùn)n,來(lái)過(guò)濾緩沖區(qū)的“回車” 
  ch = getch();  //從鍵盤獲取字符 
  if( (ch>='a'&&ch<='z') || (ch>='A'&&ch<='Z') )
  {
   Sjs = rand();
  // printf("%d\n",Sjs);
   CJ_game(Sjs); 
  }
  else if(ch == '0')
  {
   printf("=====退出手動(dòng)抽獎(jiǎng)模式=====\n");
   printf("=====請(qǐng)輸入新的游戲模式:M:手動(dòng),A:自動(dòng)\n");
   break;
  }
  else
  {
   printf("=====請(qǐng)輸入字母!??!=====\n");
  }
 }
 
}

int main()
{
 srand((unsigned)time( NULL ) ); // 初始化隨機(jī)數(shù)
 char mode;

 printf("=======游戲開始==========\n"); 
 printf("=====請(qǐng)選擇抽獎(jiǎng)模式======\n"); 
 printf("=====按M進(jìn)入模式M:手動(dòng)抽獎(jiǎng)=====\n");
 printf("=====按A進(jìn)入模式A:自動(dòng)抽獎(jiǎng)=====\n"); 
 printf("=====按0結(jié)束游戲??!=====\n"); 
 while(1)
 {
  mode = getch(); 
  if(mode =='A') 
  {
   CJ_mode_auto(); 
  }
  else if(mode =='M')
  {
   CJ_mode_handch();
  }
  else if(mode == '0')
  {
   printf("游戲結(jié)束!");
   break;  
  }
  else
  {
   printf("請(qǐng)輸入正確的模式?。?!\n");
  }
 }
 
  return 0;
}

怎么用C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)程序

怎么用C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)程序

感謝各位的閱讀,以上就是“怎么用C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)程序”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么用C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)程序這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI