編輯:非常感謝你(大家!)爲您的意見!在您的指導下,我能夠解決勝利百分比和亂數陣列數。然而,我還沒有解決輸贏的平均投注數量。我更新了我的代碼,現在在下面。For循環和陣列在C
開始原帖:
謝謝你在前進的人誰讀取這個或建議達到了!
所以我正在做定型賭博,直到你贏了,或者它已經沒有了編程課程的介紹。代碼工作得很好,除非我實際上添加了頭部或尾部部分 - 那麼我的數組可以讓投注數量變得混亂。當我使用筆記來隱藏實際的投幣部分時,陣列工作正常。當我用擲硬幣來運行它時,betArray商店真的是不可思議的數字(負數,十億中的整數)。
這是迄今爲止代碼:
如果#include<stdio.h>
#include<stdlib.h> /*Enables use of rand()*/
int main() {
setvbuf(stdout, NULL, _IONBF, 0); /*Allow me to use repl.it*/
/*Enter Gambler's name*/
char gambleName[15] = "";
printf("Enter gambler's name:\n");
scanf("%s", gambleName);
printf("\nWelcome, ");
printf("%s! \n", gambleName);
/*Enter Stakes*/
int availableFunds;
int goalFunds;
printf("We'll be betting $1 per bet. Enter your available funds:\n");
scanf("%d", &availableFunds); /* Saves stakes as availableFunds */
int seedVal=4;
srand(seedVal);
/*Butter the gamblers up*/
if(availableFunds>=1) {
printf("%d? Wow, %s - that's a great start!\n",availableFunds, gambleName);
/*Enter Goal*/
printf("How much do you want to win today? Enter a value up to 10000 with no commas, decimals or spaces:\n"); /*Saves goal as goalFunds*/
scanf("%d",&goalFunds);
/*Recognize ambitious gamblers*/
if (goalFunds > 10*availableFunds) {
printf("Wow, ambitious! Let's get started.\n");
}
else {
printf("OK, let's get started!\n");
}
printf("\n");
/*begin gambling problem*/
int betArray[1000]={0};
int game = 0;
int bet=0;
float wins = 0;
int losses = 0;
for (game=0 ; game<1000; game++) {
if (availableFunds>0 && availableFunds<goalFunds) {
int toss = rand()%2;
bet+=1;
/*losing bet*/
if (toss == 0) {
availableFunds -= 1;
losses += 1;
}
/*winning bet*/
else {
availableFunds += 1;
wins += 1;
}
betArray[game+1] = bet;
}
else {
break;
}
}
int sumBet = 0;
for (game=0;game<1000;game++) {
sumBet+=betArray[game];
}
float betAverage = sumBet/1000;
float winOutOfGames = wins/1000;
float winPercent = winOutOfGames*100;
/*print totals*/
printf("%d games played with:\n",game);
printf("%.f goals reached\n",wins);
printf("%d down-and-out losses.\n",losses);
printf("You won ~%.1f%% of your games.\n",winPercent);
printf("On average, it took you %.f bets to win or go broke.\n",betAverage);
printf("\n");
printf("Thanks for playing!\n");
for (game = 1; game <= 50; game++) {
printf("Bets in game [%d] = %d\n",game,betArray[game]);
}
}
/* Send the broke guys packing*/
else {
printf("$%d...? You may need to stop at an ATM... ¯\\_(ツ)_/¯ See you next time!\n", availableFunds);
}
return 0;
}
對不起的代碼是有點亂,我加了一些東西,試圖想發送的最新版本。
謝謝!
你使用過調試器嗎? – kaylum
我感覺不好,但我不知道這意味着什麼。我在Mac OSX上,調試器上的任何建議? –
裏面的if(availableFunds> 0 && availableFunds