ルーレットボットシミュレータをテストしているときに奇妙な問題が発生しました。 プログラムは非常にシンプルで、ルーレットホイール付きの賭けサイトからのチャンスを利用しています。それは私がこのプログラムを作ったが最適な設定を見つけるためにあなたに自動的に賭けることができる自動化されたシステムを持っています。試行回数が約400を下回ると、パーセンテージを計算するときにエラーが発生します。%%を計算するときに生成されるinf%
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
cout << "how many trials would you like?" << endl;
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
srand(time(0));
double yAmount = 0;
double bAmount = 0;
double rAmount = 0;
double gAmount = 0;
int finaltrial = 0;
int yellow = 1;
int blue = yellow + 10;
int red = blue + 17;
int grey = red + 26;
int money = 5000;
int trialno = 0;
int trials;
cin >> trials;
int result;
int bet = 10;
int moneyhigh = 0;
bool win;
bool bankrupt = false;
while (trialno < trials || trials == 0 && bankrupt == true)
{
result = rand() % 54 + 1;
if (result == yellow)
{
SetConsoleTextAttribute(h, FOREGROUND_RED | FOREGROUND_GREEN);
cout << "Yellow";
yAmount++;
win = false;
}
else if (result <= blue)
{
SetConsoleTextAttribute(h, FOREGROUND_BLUE);
cout << "Blue";
win = false;
bAmount++;
}
else if (result <= red)
{
SetConsoleTextAttribute(h, FOREGROUND_RED);
cout << "Red";
win = false;
rAmount++;
}
else if (result <= grey)
{
SetConsoleTextAttribute(h, FOREGROUND_GREEN);
cout << "Green";
win = true;
gAmount++;
}
if (win == true)
{
money = money + bet;
bet = 10;
}
else
{
money = money - bet;
bet = bet * 2;
}
if (bet > money)
{
finaltrial = trialno;
trialno = trials - 1;
bankrupt = true;
}
if (money > moneyhigh)
{
moneyhigh = money;
}
cout << endl << " trial: " << trialno << " money: " << money << endl;
trialno++;
}
gAmount = gAmount/finaltrial ;
rAmount = rAmount/finaltrial ;
bAmount = bAmount/finaltrial ;
yAmount = yAmount/finaltrial ;
cout << endl << "Final: " << money << " Peak: " << moneyhigh << endl;
cout << "Green: " << gAmount << "% " << "Red: " << rAmount << "% " << "Blue: " << bAmount << "% " << "Yellow: " << yAmount << "% " << endl;
cin >> money;
return 0;
}
[最小限で完全であり、検証可能な例](http://stackoverflow.com/help/mcve)を作成してください。 *ビルド*し、うまくいけば間違った順序で処理しないでください(計算で 'money 'を使った後に' money' *の入力を得るなど)。 –
@Someprogrammerdudeシン・マネーは一時的だったので、デバッグ時にプログラムが自動的に閉じず、今度はプログラム全体が悪くなります。 – Ravaen
デバッグ中にビジュアルスタジオが閉じないようにするには、次のように警告してください: 'while(trialno
user4581301