2016-09-04 3 views
-3

저는 C++을 대학에서 배우기 시작했으며 첫 번째 과제는 기본 수학을 수행하는 프로그램을 만드는 것입니다. 내 코드를 잘못 본 것 같지는 않지만, "sum"변수를 표시하면 대답이 달라집니다. 같은 번호를 여러 번 입력해도 답의 값이 바뀝니다. 예를 들어, 각 변수에 대해 2를 입력하면 처음에는 1864273973, 두 번째에는 1772335157이됩니다. 무엇이 이것을 일으킬 수 있습니까? 누군가가 궁금해하는 경우 나는 맥북 프로와 코드 블록을 사용하고있다. 나는 또한 나의 코드를 포함시켰다.간단한 수학 문제에 대한 잘못된 답이 표시됨 C++

#include <iostream> 
#include <stdlib.h> 
#include <math.h> 
using namespace std; 

int main() 
{ 
//variabe declarations 
int number, number2; 
int sum, difference, product, dividend; 

//calculations 
sum = number + number2; 
difference = number - number2; 
product = number * number2; 
dividend = number/number2; 

//user inputs 
cout << "\n1 of 2: Enter a number: "; 
cin >> number; 
cout << "\n2 of 2: Enter second number :"; 
cin >> number2; 
cout << "\nNumber 1 entered: " << number << "\nNumber 2 entered: " << number2; 

//output 
cout << "\n" << number << "+" << number2 << "=" << sum << "\n"; 

} 
+0

왜 전에 계산하나요? 변수가 업데이트되지 않고 사용자 입력을 저장 한 후에 방정식이 다시 계산되지 않기 때문에 결과에 영향을줍니다. 끝 부분에 계산을 넣으십시오. 그러나 결과를 출력하기 전에 – Li357

+1

"내 코드가 잘못되지 않은 것 같아요." 너는 잘못 생각한다. 오, 그래서 아주 아주 틀렸어. prac 작업을 시도하기 전에 아마도 몇 가지 클래스로 이동하십시오. – John3136

+2

입력을 얻기 전에 계산 중입니다. 즉, 초기화되지 않은 변수로 계산 중입니다. ** A와 B가 무엇인지 알기 전에 어떻게 A + B **의 추가를 계산할 수 있습니까? * 기본 수학 *은 숫자가 무엇인지 알기 전에 두 숫자로 계산할 수없고 사용 가능한 결과를 얻으려는 것을 의미합니다. 실제로 키보드를 두들 기는 대신 작성중인 코드를 읽는 방법을 배우십시오. –

답변

0

요즘 거의 모든 언어가 구조화 된 시스템을 사용합니다. 위에서 아래로 읽으므로 "a = b + c"라고 말한 다음 cin >> a라고 입력하면 b + c의 계산이 새 입력 후에 손실됩니다. 선언되었지만 초기화되지 않은 변수를 사용하여 계산하려고합니다. C++에서는 새로운 변수가 "trash"라는 숫자를 받게 될 것입니다. 아마도 원하지 않는 숫자 일 것입니다. 이 문제를 해결하기 위해 수학을하기 전에 실제로 number와 number2를 받기를 원합니다.

+0

'이것은 새로운 변수가 단지 "trash"를받는 원인이 될 것입니다 - 사실, 이것은 정의되지 않은 행동입니다, 그래서 * anything *은 프로그램의 * 어떤 부분에서도 일어날 수 있습니다. –