2013-01-10 54 views
-2

我正在使用G ++編譯器。以下代碼正在編譯正確。爲什麼使用G ++生成一個隨機數時會出現浮點錯誤?

#include<iostream> 
#include<cstdlib> 
#include<stdio.h> 

using namespace std; 

int random(int max) 
    { 
    return rand()/(RAND_MAX/max + 1); 
    } 

int main() 
    { 
    for(int iteration=0; i<10; i++) 
    { 
    int myNum=random(130); 
    myNum=myNum-(myNum%iteration); /* This line causes exception. */ 
    (myNum<0)?(myNum=myNum*-1):myNum; 
    cout<<"\nRandom number is "<<myNum<<"\n"; 
    } 
    } 

在運行時,它產生了以下異常..

 
g++ Implement.cc 
./a.out 
Floating point exception 

能否請你幫我糾正這個錯誤?

+2

你的意思是「爲什麼我的代碼編譯失敗?」該行導致編譯錯誤,因爲'iteration'不是一個聲明的變量。 – bames53

+1

@ barnes53發生運行時錯誤。您可以看到OP在哪裏運行a.out。 –

+0

@ bames53 - 他說這是被正確編譯並顯示運行時輸出。但代碼缺失。迭代沒有在代碼中定義提供 – Matt

回答

11

您正在%反對0

for(int iteration=0; i<10; i++) 
        ^^^ 
+0

謝謝。這是錯誤。 –

相關問題