//Purpose: To simulate the probability that a car will make a decision in a video game.
//40% of the time the car will turn left, 30% right, 20% straight, and 10% explode.
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <iomanip>
using namespace std;
void GetCount( count[] );
int main()
{
int count[4] = {0};
unsigned int k;
float theoretical;
srand( (unsigned) time(NULL) );
GetCount( int count[] );
cout.setf( ios::showpoint | ios::fixed );
cout << setprecision(2);
cout << " Car Simulation" << endl << endl
<< " Number of Experimental Theoretical % Error " << endl
<< " Times Selected Percent Percent " << endl
<< " ---------------- -------------- ------------- ------ " << endl;
for ( k = 0; k < 4; k++ )
{
switch(k)
{
case 0:
cout << "Left: ";
theoretical = 40;
break;
case 1:
cout << "Right: ";
theoretical = 30;
break;
case 2:
cout << "Straight: ";
theoretical = 20;
break;
default:
cout << "Explosion:";
theoretical = 10;
break;
} // end switch
cout << setw( 12 ) << count[ k ]
<< setw( 20 ) << count[ k ] / 10000.0 * 100.0
<< setw( 19 ) << theoretical
<< setw( 13 ) << ( ( count[ k ] - theoretical * 100 ) / (theoretical * 100) * 100 )
<< endl << endl;
} //end for
cout << endl << endl;
system("PAUSE");
return 0;
} //end main
void GetCount( int count[] )
{
int randNum;
unsigned int k;
for( k = 0; k < 10000; k++ )//generates random number 1-100 10,000 times
{
randNum = rand() % 100 + 1;
if( randNum <= 100 && randNum > 60 )
count[0]++;
else if( randNum <= 60 && randNum > 30 )
count[1]++;
else if( randNum <= 30 && randNum > 10 )
count[2]++;
else
count[3]++;
}//end for
}//end function definition
上面的代码用于模拟汽车在视频游戏中做出决定。
在一个十字路口,40%的车辆将向左转弯,30%的车辆向右转弯,20%的车辆转向,以及10%的时间车辆将会爆炸。
程序执行10,000个这些决定并输出结果。
除了函数&#34; GetCount()&#34;之外,一切都很好用。调用此函数时,应生成表示决策的随机数,并存储每个数字在其数组中生成的次数。
然而,当我编译程序时,我收到一个错误说:
"in line 21, expected primary-expression before ']' token".
这是我调用函数的行。我尝试了一些尝试并修复它但我不断收到一些错误。
非常感谢任何建议,谢谢。
答案 0 :(得分:1)
GetCount( int count[] );
应该是
GetCount(count);
这种类型不必重复;编译器知道count
是您刚刚声明为int[]
的同一个变量。