看下面的修改: 运行一下 你自然知道为什么 ?
输入流问题!!!!
cin读到字符与int不匹配 并没有从输入缓冲区remove掉你输入的字符
这样下次循环到时 由于输入缓冲区有数据 不等待用户(你)输入数据 便开始读数据
但是还是字符 一直这样错下去 自然死循环了 看下面的失败判断和清除缓冲区的办法
while(true)
{
int yuan=0;
cout<<"请输入投沙数量:"<
cout<<"输入错误 n没有被正确设置,仍使用原值n="<
}
srand((unsigned)time(NULL));
#include
#include
using namespace std;
bool tousha();
int main()
{
char f='0';
int n=9999;
while(true)
{
int yuan = 0;
cin>>f;
if ( (f == 'x')||(f == 'X'))
{
break;
}
cout<<"请输入投沙数量:"<
srand((unsigned)time(NULL));
for(int i=1;i<=n;++i)
{
if(tousha()==true)
yuan+=1;
}
cout<<"投沙总数为\t"<
}
return 0;
}
bool tousha()
{
double x,y;
x=rand()/(double)RAND_MAX;
y=rand()/(double)RAND_MAX;
if(x*x+y*y<=1)
return true;
return false;
}