2014-05-15 5 views
0

나는 10 개의 숫자를 입력하고 for 루프를 사용하여 그 숫자의 합계를받을 수있는 프로그램을 C++로 작성하려고합니다. 그러나 추가 된 정수를 얻지 못하고 대신 마지막 두 숫자의 합계를 얻는 문제가 발생합니다.정수를 C++로 추가하기

#include <iostream> 
using namespace std; 

int main() 
{ 
    int i; 
    int number; 

    for(i; i < 10; i++) 
    { 
     cout << "enter a number" << endl; 
     cin >> number; 
     if(i < 10) 
      number+= number; 
    } 

    cout << number; 
    return 0; 
} 

답변

2

1) i을 초기화하지 않으므로 for 루프에서 초기화해야합니다.

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

또한 필요가 없습니다

if(i < 10) 

당신의 for 루프 조건에 따라,이 false을 결코 수 있기 때문이다.

2) number도 초기화해야합니다.

int number = 0; 

3) 당신은하지 cin 직접 number에해야하거나 전체를 매번 교체 할 것입니다. 예를 들어 for 루프에서이 작업을 수행 할 수 있습니다. 위의 세 가지 문제를 해결하는 경우

int temp = 0; 
cin >> temp; 
number += temp; 

요약 , 수정 된 코드는 다음과 같습니다

int main() 
{ 
    int number = 0; 

    for(int i=0; i < 10; ++i) 
    { 
     cout << "enter a number" << endl; 
     int temp = 0; 
     cin >> temp; 
     number += temp; 
    } 

    cout << number; 
    return 0; 
} 
0

당신은 당신이 지금까지의 합계를 교체 cin >> number;을 쓸 때. 사용자 입력을 별도의 변수로 가져 와서 추가해야합니다. 다음과 같음 :

for(i = 0; i < 10; i++) 
{ 
    cout << "enter a number" << endl; 
    int input; 
    cin >> input; 
    number += input; 
} 
+0

시작하기 전에 당신은 또한 제로에 수를 초기화해야으로 입력 스트림에서 읽기 때문에이 번호에 값을 할당 할 필요는 없습니다 ... – Useless

0

몇 가지. 당신은 당신이

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

또한, 당신은 당신이 합계를 저장하는 데 사용으로 CIN에서 숫자를 얻기 위해 같은 변수를 사용하는 루프

을 위해 그것을 사용하기 전에 초기화해야합니다. 두 개의 별도 변수를 사용해야합니다.

0

다음은 몇 가지 수정 사항이 포함 된 작업 프로그램과 변경 사항입니다. 1. 의미가있는 방식으로 변수를 사용하려면 먼저 변수를 초기화해야합니다. 초기화는 초기 값을 지정하는 것을 의미하지만 변수를 선언하고 올바르게 정의해야합니다 (예 : 루프 변수가 정수로 정의되지 않았습니다). 따라서 for 루프 변수 i를 초기화해야합니다. 또한 숫자를 0으로 변경하여 번호를 초기화해야합니다.
2. 입력 한 값과 합계에 대해 다른 값을 사용하십시오. 이전 값을 읽는 즉시 덮어 쓰기 만하기 때문입니다. 당신이 그것을

int sum=0,n;//n is input 

    for(int i=0; i < 10; i++) 
    { 
     cout << "enter a number" << endl; 
     cin >> n; 
     sum+= n; 

    } 

    cout << sum;