2015-11-02 36 views
-5

我試圖確定結果是整數,當我除以兩個整數。我怎麼做?如何確定兩個整數的結果是否是float的整數?

float result; 
int number1, number2; 
cout<<"Give me number 1 and 2"<<endl; 
cin>>number1; 
cin>>number2; 
result = number1/number2; 
if(result == int) 
{ 
    cout<<"The numbers can be devided"<<endl; 
}else cout<<"The numbers can't be devided"<<endl; 

我得到錯誤,因爲你不能那樣做,有人可以幫我一下嗎?它讓我心煩意亂,每一篇文章都會告訴我,如何檢查輸入是整數,而不是結果。我不關心輸入,我想知道結果是否是整數。感謝幫助!

編輯:

所以我的功能看起來像這樣:

int funkcijaDva() 
{ 
    int popizdobom = 0; 
    int tri = 3; 
    int tristo = 300; 
    int tritisoc = 3000; 
    float result; 
    for(; tristo!=tritisoc;tristo++) 
    { 
     result = (int)tristo/tri; 
     if(tri % tristo == 0) 
     { 
      popizdobom++; 
     } 
    } 
    return popizdobom; 
} 

,並在popizdobom結果總是0 ...難道我做錯了什麼? 編輯: 得到它的工作......一些錯誤的編譯器我猜...

+6

寫100回: 「C不是C++不是C!」。兩個'int's操作 – Olaf

+3

結果總是'int' – Hcorg

+0

它實際上是因爲沒有人在我的課知道如何解決它一個合法的問題,所以不要再負吧......在我的課 –

回答

8

您可以用運營商(%),其中一個號碼由相除後的餘輕鬆檢查另:

if(number1 % number2 == 0) 
{ 
    // result of division is integral 
    // or in other words: number1/number2 = whole number 
} 

注意number1number2必須以整數爲模工作。

您還必須將至少一個整數施加到float,以獲得float作爲其分割的結果。

float result = (float)number1/number2; 

你可以閱讀更多關於這裏的操作: https://en.wikipedia.org/wiki/Modulo_operation


編輯:成立一些建議從下面的評論。

+1

一旦分裂,就太遲了。你真的想在分裂之前檢查。 –

+0

沒有,我需要知道,如果我的結果是整數或不...我不知道你剛纔在這裏做... –

+4

@AlexVandalowski我用的是模運算,這在C和C++寫成%。你可以在wikipedia上閱讀更多關於這個操作符的信息。 (我提供了一個鏈接)。 –

0

如果你想實際評估分區,那麼你需要做到浮點。您可以通過編寫

double f = 1.0 * number1/number2;

1.0迫使分工發生在浮點做到這一點。

然後,您可以通過評估ceil(f) == f來檢查f是否爲整數。 (請注意,這是精確浮點比較的合法用法)。

如果,另一方面,你需要知道,如果number1/number2得到的餘數,然後評估number1 % number2。當且僅當number1沒有完全除以number2時,這將是非零的。

+0

我需要知道number1/number2 =整數。我不知道該怎麼說呢...... 5/6!= INT其中5/5 = INT和10/5 = INT,但5/10!= INT ... –

+0

NUMBER1/NUMBER2是,如果一個整數,且僅當,數字1%NUMBER2爲0 – Bathsheba

+0

第二種方法來檢查它 - >這兩個分區的數字是int的。您將結果以浮點形式存儲。讓我們稱之爲'float fResult'。讓我們再次聲明一個int變量爲'int iResult = int1/int2'。然後檢查「iFloat> iResult」。如果是這意味着結果是浮動的(這意味着大於0.0) – anurag86

0

您可以使用此代碼:

int result; 
int number1, number2; 
cout<<"Give me number 1 and 2"<<endl; 
cin>>number1; 
cin>>number2; 
result = number1 % number2; 
if(result == 0) 
{ 
    cout<<"The numbers can be devided"<<endl; 
}else cout<<"The numbers can't be devided"<<endl; 
+0

家庭作業幫助是一回事。但你至少應該解釋一下。 – Olaf

相關問題