2017-11-04 59 views
0

我尝试编译代码块,但不工作的代码,我不知道它是什么产生错误函数rand()的代码块犯规编译

#include<iostream> 
#include<iomanip> 
#include<cmath> 
#include<ctime> 
#include<cstdlib> 

using namespace std; 

int main() 
{ 
const int NUMLANZ=1000; 

int caras=0,cruces=0,i; 
double volado,porcaras,porcruces; 

srand(time(NULL)); 
for(i=1;1<=NUMLANZ; i++) 
{ 
    volado= ((double) rand()/(RAND_MAX)); 
    if(volado>0.5) 
     caras=caras+1; 
    else 
     cruces=cruces+1; 
} 
porcaras=(caras/double (NUMLANZ))*100; 
porcruces=(cruces/ double(NUMLANZ))*100; 
cout<<"\nCaras salio "<<porcaras<<" por ciento de las veces"; 
cout<<"\nCruces salio "<<porcruces<<" por ciento de las veces"; 

return 0; 
} 

即时通讯新的C++代码,我不知道如果编译产生错误,因为这段代码是从C++书籍学习中复制出来的,所以奇怪的是这段代码不起作用

+1

即使您不知道如何使用调试器,只需在一些行后面添加cout语句,并查看它崩溃或给出错误的位置.... –

回答

1

循环永远不会终止,因为文字常量1总是小于NUMLANZ

比较:

for(i = 1; 1 <= NUMLANZ; i++) 
       ^

for(i = 1; i <= NUMLANZ; i++) 
       ^

还请注意,这是更传统的循环计数器从零开始:

for(i = 0; i < NUMLANZ; i++) 

在这种情况下,它没有什么区别其他那么少一个字符,但是如果您使用i为例如数组索引e,这是至关重要的。