本文實(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í)候可以選擇模式,鍵盤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(); //從鍵盤獲取字符
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í)有所幫助,也希望大家多多支持html5模板網(wǎng)。
【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!