實踐1:函數(shù)編程練習(xí) 1.?dāng)S骰子游戲 編寫程序模擬擲骰子游戲。已知擲骰子游戲的游戲規(guī)則為:每個骰子有6面,這些面包含1、2、3、4、5、6個點,投兩枚骰子之后,計算點數(shù)之和。如果第一次投的點數(shù)和為7或11,則游戲者獲勝;如果第一次投的點數(shù)和為2、3或12,則游戲者輸;如果第一次投的點數(shù)和為4、5、6、8、9或10,則將這個和作為游戲者獲勝需要擲出的點數(shù),繼續(xù)投骰子,直到賺到該點數(shù)時算是游戲者獲勝。如果投擲7次仍未賺到該點數(shù),則游戲者輸。 【思考題】 將游戲規(guī)則改為:計算機(jī)想一個數(shù)作為一個骰子擲出的點數(shù)(在用戶輸入數(shù)據(jù)之前不顯示該點數(shù)),用戶從鍵盤輸入一個數(shù)作為另一個骰子擲出的點數(shù),再計算兩點數(shù)之和。其余規(guī)則相同,然后請讀者重新編寫該程序。 2.學(xué)生成績統(tǒng)計(一維數(shù)組)要求函數(shù)參數(shù)中包含一維數(shù)組。 從鍵盤輸入一個班(全班最多不超過30人)學(xué)生某門課的成績,當(dāng)輸入成績?yōu)樨?fù)值時,輸入結(jié)束,分別實現(xiàn)下列功能: (1)統(tǒng)計不及格人數(shù)并打印不及格學(xué)生名單; (2)統(tǒng)計成績在全班平均分及平均分之上的學(xué)生人數(shù),并打印這些學(xué)生的名單; (3)以直方圖方式統(tǒng)計各分?jǐn)?shù)段的學(xué)生人數(shù)及所占的百分比。形式如下: 分?jǐn)?shù)段 學(xué)生人數(shù) 圖形 60 3(10%) *** 60-69 8(…) ******** 70-79 7(…) ******* 80-89 8(…) ******** =90 4(…) **** 實踐2:結(jié)構(gòu)體編程練習(xí) 在屏幕上模擬顯示一個數(shù)字式時鐘 按如下方法定義一個時鐘結(jié)構(gòu)體類型: struct clock { int hour; int minute; int second; }; typedef struct clock CLOCK; 然后,將下列用全局變量編寫的時鐘模擬顯示程序改成用CLOCK結(jié)構(gòu)體變量類型重新編寫。已知用全局變量編寫的時鐘模擬顯示程序如下: #include stdio.h int hour, minute, second; /*全局變量定義*/ /* 函數(shù)功能:時、分、秒時間的更新 函數(shù)參數(shù):無 函數(shù)返回值:無 */ void Update(void) { second++; if (second == 60) /*若second值為60,表示已過1分鐘,則 minute值加1*/ { second = 0; minute++; } if (minute == 60) /*若minute值為60,表示已過1小時,則 hour值加1*/ { minute = 0; hour++; } if (hour == 24) /*若hour值為24,則hour的值從0開始計時*/ { hour = 0; } } /*函數(shù)功能:時、分、秒時間的顯示 函數(shù)參數(shù):無 函數(shù)返回值:無 */ void Display(void) /*用回車符'\r'控制時、分、秒顯示的位置*/ { printf("%2d:%2d:%2d\r", hour, minute, second); } /*函數(shù)功能:模擬延遲1秒的時間 函數(shù)參數(shù):無 函數(shù)返回值:無 */ void Delay(void) { long t; for (t=0; t50000000; t++) { /*循環(huán)體為空語句的循環(huán),起延時作用*/ } } main() { long i; hour = minute = second = 0; /*hour,minute,second賦初值0*/ for (i=0; i100000; i++) /*利用循環(huán)結(jié)構(gòu),控制時鐘運行的時間*/ { Update(); /*時鐘更新*/ Display(); /*時間顯示*/ Delay(); /*模擬延時1秒*/ } }
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計制作、做網(wǎng)站、門源網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、門源網(wǎng)絡(luò)營銷、門源企業(yè)策劃、門源品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供門源建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:muchs.cn
#include time.h
#include stdio.h
#include string.h
#define MIDDLE_FLAG 1
#define INITIAL_SCORE 1000
int bet()
{
int rollresult;
rollresult = rand()%6 + 1; //此處rand()為隨機(jī)數(shù),對6取余結(jié)果為0~5,需要+1修正為1~6
//printf("結(jié)果:%-4d",rollresult);
if (rollresult MIDDLE_FLAG)
return 1;
else
return 0;
}
int main()
{
int betscore,myscore = INITIAL_SCORE;
int resultflag, betflag, betresult;
char cinput[2], sresult[3];
printf("您的初始分?jǐn)?shù)為%d\n",myscore);
srand((int)time(0)); //用時間創(chuàng)建隨機(jī)數(shù)種子
while(1)
{
while(1)
{
puts("請壓分:");
scanf("%d",betscore);
if(betscore myscore)
printf("您的剩余分?jǐn)?shù)不夠,為%d", myscore);
else
break;
}
fflush(stdin); //強(qiáng)制刷新緩沖區(qū),防止上次輸出影響
puts("請選擇大小G為大L為小,X為退出:");
gets(cinput);
cinput[0] = cinput[0]%32+'A' - 1;
if(cinput[0] == 'X')
break;
else
betflag = (cinput[0] == 'G')?1:0;
//三目運算符“?”用法:x=(ab)?a:b;相當(dāng)于if(ab)x=a;else x=b;
betresult = bet();
myscore = (betresult == betflag)?(myscore+2*betscore):(myscore-betscore);
strcpy(sresult, ((betresult!=0)?"大":"小"));
printf("結(jié)果為%s,您當(dāng)前的分?jǐn)?shù)為%d\n",sresult, myscore);
}
return 0;
}
#includestdio.h
#includestdlib.h
#includetime.h
int?main(void)
{
int?ai[3];??//甲的三個骰子的點數(shù)
int?bi[3];??//乙的三個骰子的點數(shù)
int?i;
srand((unsigned)time(NULL));??//播時間種子,產(chǎn)生隨機(jī)數(shù)
for?(i?=?0;?i??3;?i++)
{
ai[i]?=?rand()?%?6?+?1;??//隨機(jī)產(chǎn)生1-6的點數(shù)
bi[i]?=?rand()?%?6?+?1;
}
printf("甲的點數(shù):");
for?(i?=?0;?i3;?i++)
{
printf("%d??",?ai[i]);
}
printf("\n乙的點數(shù):");
for?(i?=?0;?i3;?i++)
{
printf("%d??",?bi[i]);
}
if?(ai[0]?+?ai[1]?+?ai[2]bi[0]?+?bi[1]?+?bi[2])
{
printf("\n\n甲獲勝.\n");
}
else{
printf("\n\n乙獲勝.\n");
}
return?0;
}
擲骰子比大小,用隨機(jī)數(shù)就可以,但是莊家的規(guī)則是咋樣的沒交代清楚(這里假定莊家的優(yōu)勢在于點數(shù)一樣大時,莊家贏):
#include "stdafx.h"
#include iostream
#include time.h
using namespace std;
int main()
{
int Me, Computer,n=1,MC=1;
int meWin = 0, nGames = 0;
srand((unsigned int)time(NULL));
while (n)
{
cout "開始擲骰子(輸入1開始,輸入0結(jié)束):" endl;
cin n;
Me = rand() % 6 + 1;
Computer= rand() % 6 + 1;
nGames++;
if (MC)
{
cout "你做莊:" endl;
cout "你的點數(shù):" Me " 電腦的點數(shù):" Computer endl;
if (Me = Computer)
{
meWin++;
cout "恭喜你贏了!" endl;
}
else
{
MC = 0;
cout "哦,你輸了!" endl;
}
}
else
{
cout "電腦做莊:" endl;
cout "你的點數(shù):" Me " 電腦的點數(shù):" Computer endl;
if (Computer = Me)
cout "哦,你輸了!" endl;
else
{
meWin++;
MC = 1;
cout "恭喜你贏了!" endl;
}
}
}
cout "你贏的次數(shù):" meWin " 輸?shù)拇螖?shù):" nGames - meWin " 勝率:";
float p = (float)meWin / nGames;
int q = p * 100;
printf("%2d%% \n", q);
system("pause");
return 0;
}
當(dāng)前名稱:c語言隨機(jī)函數(shù)擲骰子 c語言擲骰子程序
文章源于:http://muchs.cn/article2/ddcgoic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站收錄、動態(tài)網(wǎng)站、微信小程序、外貿(mào)網(wǎng)站建設(shè)、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)