2012-10-29 112 views
0

我有整個程序,除了它總是從較大的數中減去較小的數的部分。我一直在試圖找到它,但我找不到任何東西來幫助我。這是我需要幫助的唯一部分。不知道如何總是從較大的數中減去較小的數字

這是代碼。

#include <iostream> 
#include <iomanip> 
#include <cmath> 
using namespace std; 

//function prototype 
int getRandomNumber(int lower, int upper); 

int main() 
{ 
//declare variables 
int smallest = 0; 
int largest = 0; 
int num1 = 0; 
int num2 = 0; 
int correctAnswer = 0; 
int userAnswer = 0; 

//initialize rand function 
srand(static_cast<int>(time(0))); 

cout << "Smallest Integer: "; 
cin >> smallest; 
cout << "Largest Integer: "; 
cin >> largest; 
cout << endl; 

for (int x = 1; x < 6; x += 1) 
{ 
//generate two random integers 
//from smallest through largest, then 
//calculate the sum 
num1 = getRandomNumber(smallest, largest); 
num2 = getRandomNumber(smallest, largest); 
correctAnswer = num1 - num2; 

//display addition problem and get user's answer 
cout << "what is the difference of " << num1 <<" - " << num2 << " ? "; 
cin >> userAnswer; 

//determine wether user's answer is correct 
if (userAnswer == correctAnswer) 
cout << "Correct"; 
else 
cout << " Sorry, the correct answer is " << correctAnswer << "."; 
//end if 
cout << endl << endl; 
} //end for 

return 0; 
} //end of main function 

//*****function definitions***** 
int getRandomNumber(int lower, int upper) 
{ 
int randInteger = 0; 
//generate random integer from lower through upper 
randInteger = lower + rand() % (upper - lower + 1); 
return randInteger; 
} //end of getRandomNumber function 

need help! 
+2

''中有一個函數可以幫助您排除更小的檢查。 – chris

回答

4

如果你只是在兩個數之間的差異後,爲什麼不使用abs(num1 - num2)? 然後你就不必關心訂單了。

http://www.cplusplus.com/reference/clibrary/cmath/abs/

+0

以及我想要它從較大的一個減去較小的一個的原因是這樣答案不會出現爲負數。 – jewport101

+0

使用abs()後不會出現負值:P –

2

似乎很簡單。

if (num1 < num2) 
    correctAnswer = num2 - num1; 
else 
    correctAnswer = num1 - num2; 
1

只是把邏輯放到一個函數中,並做一個簡單的布爾檢查來決定返回哪個結果。

int SubstractSmallerNumber(int num1, int num2){ 
    if(num1 < num2) return num2 - num1; 
    else return num1 - num2; 
} 

這是一個蠻力方法,您可以找到更智能的方法來解決問題。 想想絕對值。如果您採用減法的絕對值,您將獲得相同的淨效應。

+0

以及我感謝大家的答案,他們幫助非常大。 – jewport101

相關問題