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:程序開(kāi)始的時(shí)候可以選擇模式,鍵盤(pán)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) 游戲開(kāi)始==========\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) 游戲開(kāi)始==========\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(); //從鍵盤(pán)獲取字符
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("=======游戲開(kāi)始==========\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;
}


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++模擬實(shí)現(xiàn)string的詳細(xì)過(guò)程
在?C++?編程中,字符串的處理是一項(xiàng)常見(jiàn)且重要的任務(wù),標(biāo)準(zhǔn)庫(kù)中的?string?類為我們提供了便捷、高效的字符串操作方法,模擬實(shí)現(xiàn)?string?類?的背景源于對(duì)?C++?底層原理的探索欲望,所以本文給大家介紹了C++模擬實(shí)現(xiàn)string的詳細(xì)過(guò)程,需要的朋友可以參考下2024-08-08
C語(yǔ)言計(jì)算1/1+1/2+1/3+…+1/n的問(wèn)題
這篇文章主要介紹了C語(yǔ)言計(jì)算1/1+1/2+1/3+…+1/n的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
C語(yǔ)言中強(qiáng)制類型轉(zhuǎn)換的常見(jiàn)方法
強(qiáng)制類型轉(zhuǎn)換是一種將一個(gè)數(shù)據(jù)類型轉(zhuǎn)換為另一個(gè)數(shù)據(jù)類型的方法,這篇文章主要為大家整理了C語(yǔ)言中強(qiáng)制類型轉(zhuǎn)換的方法,需要的可以參考一下2023-05-05
VS中scanf函數(shù)報(bào)錯(cuò)問(wèn)題的幾種解決方法
本文主要介紹了VS中scanf函數(shù)報(bào)錯(cuò)問(wèn)題的幾種解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
C語(yǔ)言實(shí)現(xiàn)銷售管理系統(tǒng)設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)銷售管理系統(tǒng)設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
VC++實(shí)現(xiàn)程序開(kāi)機(jī)啟動(dòng)運(yùn)行的方法
這篇文章主要介紹了VC++實(shí)現(xiàn)程序開(kāi)機(jī)啟動(dòng)運(yùn)行的方法,很實(shí)用的功能,需要的朋友可以參考下2014-08-08

