2013-10-29 3 views
0

for 루프를 사용하여 호텔에 몇 층인지 묻는 프로그램을 작성한 다음 사용자에게 각 층의 객실 수와 점유 한 객실 수를 묻습니다. 결국 나는 모든 방을 더하고, 얼마나 많은 사람들이 점령 되었는가, 점령되지 않았는가, 그리고 그 수에 기초한 백분율을 제공 할 것이다. 지금까지 내가 가지고있는 것 모두가 루프이고, 나의 합계 기능은 이제 저에게 터무니없는 숫자를줍니다.for 루프를 사용하여 여러 입력에서 합계를 얻으시겠습니까?

#include <iostream> 

using namespace std; 

int main() 

{ 

int floor, room, occupy, total_unoccupy, total_occupy, total_room; 

cout << "How many floors are in the hotel?\n"; 
cin >> floor; 


    for (;floor >= 1; floor--) 
    { 
     cout << "How many rooms are on floor " << floor << "?" << endl; 
     cin >> room; 
     cout << "How many of these rooms are occupied?" <<endl; 
     cin >> occupy; 
    } 
total_room += room; 

cout << "The total number of rooms are " << total_room << "." << endl; 


return 0; 
} 

답변

0

for 루프 내에서 total_room += room;을 이동하십시오. 그렇지 않으면 당신을 ...

int floor = 0, room = 0, occupy = 0, total_unoccupy = 0, total_occupy = 0, total_room = 0; 
+0

로 총 변수를 초기화해야 nhgr에 대한 감사 답변을 왼쪽으로하지 않습니다. 저의 "total_room"성명서를 사용하여 저는 3 층에 6 개의 방이 있고 모두 수천 명의 사람들이 출력을 받았습니다. –

+0

@EatMyPeacock 내 대답의 두 번째 부분을 읽으십시오. 문제의 일부는 당신이 모든 층을 합하지 않는다는 것입니다. 문제의 다른 부분은 변수를 초기화하지 않는다는 것입니다. 'floor','room','occupy'는 초기화하는 것만 큼 중요하지는 않지만 (사용자가 입력 한 후에 만 ​​사용하기 때문에)'total_unoccupy','total_occupy' 및' total_room'. – nhgrif

+0

나는 두 번째 부분을 절대 놓쳤다. 고맙습니다!! –

0

당신은 total_occupy = 0 등 같은 변수를 초기화해야합니다 이것에

int floor, room, occupy, total_unoccupy, total_occupy, total_room; 

:

for (;floor >= 1; floor--) { 
    cout << "How many rooms are on floor " << floor << "?" << endl; 
    cin >> room; 
    total_room += room; 
    cout << "How many of these rooms are occupied?" <<endl; 
    cin >> occupy; 
    total_occupy += room; 
    total_unoccupy += room-occupy; 
} 

또한,이 라인을 변경해야 예기치 않은 결과가 발생할 수 있습니다.

감사

0

아무것도 은 또한, 경우에 곱셈에, 당신은 아직도 나에게 많은 수의 준 1

관련 문제