2017-11-04 3 views
0

イムをコンパイルし、私はそれがエラーのC++コードで関数のrand()コードブロックdoesntのこのコードブロック内のコードが、doesntの仕事をコンパイルしようとしている

#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++の本の研究からコピーされているので、このコードがうまく動作しないので

+1

デバッガの使い方がわからなくても、いくつかの行の後ろにcout文を追加して、クラッシュした箇所やエラーを表示するだけです。 –

答えて

1

リテラル定数1は常にNUMLANZより小さいのでループは終了しません。

は比較:

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

ループカウンタがゼロからスタートすることがより一般的であることにも注意して

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

:この場合

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

を、それは違いはありませんそれ以外の文字は1つ少なくなりますが、iを使用してexamplの配列にインデックスを付ける場合e、それは非常に重要です。

関連する問題