C語(yǔ)言實(shí)現(xiàn)搶紅包程序代碼精簡(jiǎn)版
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)搶紅包程序的具體代碼,供大家參考,具體內(nèi)容如下
其實(shí)這是段相當(dāng)簡(jiǎn)單的代碼,至于為什么還要把它放在博客上呢,主要是針對(duì)那些剛?cè)腴T學(xué)編程的同學(xué)(或者是對(duì)程序感興趣的同學(xué)),一個(gè)比較直觀的程序(小游戲)或許更能培養(yǎng)他們的興趣,或是說更能使他們對(duì)編程滿懷熱情。首先我自己也是從那個(gè)階段過來的,對(duì)于老師上課講得知識(shí)很迷茫,不知道熟悉一些運(yùn)算符,語(yǔ)句,結(jié)構(gòu)有什么用,該怎么用,于是自己摸索著找了幾個(gè)實(shí)例練練手,在練習(xí)的過程就逐步掌握了老師講的知識(shí),自己對(duì)編程也更感興趣了。下面將給大家一個(gè)精簡(jiǎn)版的搶紅包的程序,自己拿著去運(yùn)行一下吧。
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<ctype.h>
這是程序的頭文件,我想這不用我多說大家都應(yīng)該知道了;
int hongbao() { int num=100; float total=100; float a[101]; float min=0.01; int i; float t; float safe_total=0; float sum=0; srand(time(0)); for(i=1;i<num;i++) { t=total/(num-i+1); safe_total=t*2; a[i]=(rand()%(int)(safe_total*total)+(int)min*total)/total+min; total=total-a[i]; printf("第%d個(gè)紅包有%0.2f元\n",i,a[i]); } a[i]=total; printf("第%d個(gè)紅包有%0.2f元\n\n你領(lǐng)取的總金額%0.2f元\n",i,a[i],sum+a[i]); return 0; }
這就是搶紅包的整個(gè)程序,我把他定義為一個(gè)函數(shù),是為了讓游戲更加的有趣(在主函數(shù)里調(diào)用可以自己設(shè)置循環(huán))。在段代碼里我默認(rèn)設(shè)置了100塊錢,100紅包,然后自己搶,每個(gè)紅包的金額是隨機(jī)分配的,這里用了一維數(shù)組來存放;遍歷輸出這些語(yǔ)句是不計(jì)較簡(jiǎn)單的不做贅述。
int main() { loop1: hongbao(); printf("\n\n"); while(1) { printf("是否繼續(xù)搶紅包(Y\\N)\n"); int a; scanf("%c",&a); getchar(); a=toupper(a); if(a=='Y') { goto loop1; } else if(a=='N') { printf("Congratulation!??!"); break; } else { printf("your input is wrong!please input again\n\n"); continue; } } return0; }
主函數(shù)就很簡(jiǎn)單明了了,就是調(diào)用hongbao()這個(gè)函數(shù),至于這里有while循環(huán),在上面提過,為了測(cè)試游戲的時(shí)候開業(yè)只有選擇是否繼續(xù)。其他的就是一些打印語(yǔ)句,這些很容易理解。在這里使用了goto語(yǔ)句完全是為了方便,因?yàn)檫@個(gè)程序的循環(huán)并不復(fù)雜,為了簡(jiǎn)單直觀就這樣操作了。(說實(shí)話這是我好久之前的代碼)
不厭其煩的把整個(gè)代碼在貼一遍吧
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<ctype.h> int hongbao() { int num=100; float total=100; float a[101]; float min=0.01; int i; float t; float safe_total=0; float sum=0; srand(time(0)); for(i=1;i<num;i++) { t=total/(num-i+1); safe_total=t*2; a[i]=(rand()%(int)(safe_total*total)+(int)min*total)/total+min; total=total-a[i]; printf("第%d個(gè)紅包有%0.2f元\n",i,a[i]); } a[i]=total; printf("第%d個(gè)紅包有%0.2f元\n\n你領(lǐng)取的總金額%0.2f元\n",i,a[i],sum+a[i]); return 0; } int main() { loop1: hongbao(); printf("\n\n"); while(1) { printf("是否繼續(xù)搶紅包(Y\\N)\n"); int a; scanf("%c",&a); getchar(); a=toupper(a); if(a=='Y') { goto loop1; } else if(a=='N') { printf("Congratulation?。?!"); break; } else { printf("your input is wrong!please input again\n\n"); continue; } } return0; }
以上就是一個(gè)精簡(jiǎn)版的搶紅包代碼,希望能夠?qū)δ阌兴鶐椭?/p>
其實(shí)編程是一個(gè)非常有趣的事,你可以根據(jù)一段簡(jiǎn)單的代碼,自己不斷加上一些東西,不斷的去完善它,在這個(gè)過程你就會(huì)慢慢的進(jìn)步,如俗話所說從小事做起,日積月累,慢慢的你就會(huì)發(fā)現(xiàn)自己完成了一件很大的工作。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++的類型轉(zhuǎn)換(強(qiáng)轉(zhuǎn))你了解嗎
這篇文章主要為大家詳細(xì)介紹了C++的類型轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02C語(yǔ)言中用于修改文件的存取時(shí)間的函數(shù)使用
這篇文章主要介紹了C語(yǔ)言中用于修改文件的存取時(shí)間的函數(shù)使用,分別為utime()函數(shù)和utimes()函數(shù)的使用,需要的朋友可以參考下2015-09-09C++實(shí)現(xiàn)插入排序?qū)φ麛?shù)數(shù)組排序
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)插入排序?qū)φ麛?shù)數(shù)組排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05C語(yǔ)言函數(shù)棧幀的創(chuàng)建與銷毀詳解
函數(shù)棧幀(stack frame)就是函數(shù)調(diào)用過程中在程序的調(diào)用棧(call stack)所開辟的空間,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言函數(shù)棧幀的創(chuàng)建與銷毀的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09C語(yǔ)言的動(dòng)態(tài)內(nèi)存管理你了解嗎
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的動(dòng)態(tài)內(nèi)存管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽取紙牌
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽取紙牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10C語(yǔ)言獲取Shell返回結(jié)果的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狢語(yǔ)言獲取Shell返回結(jié)果的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07C++實(shí)現(xiàn)LeetCode(160.求兩個(gè)鏈表的交點(diǎn))
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(160.求兩個(gè)鏈表的交點(diǎn)),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07