2015-08-08 51 views
-2
#include <iostream> 

using namespace std; 

int main(){ 

    int num=0; 
    int total=0; 

    cout<<"Enter many numbers as you like : "<<endl; 

    while (cin>>num){ 
    if (num==0){ 
     break; 
     cout<<"The sum is : " ; 
     total = total + num; 

    } 

    } 


    system("PAUSE"); 
    return 0; 
} 

的所有號碼的總和。當我運行這個它運行,當我進入零程序停止,但它沒有得到用戶輸入的數字的總和。請幫助我解決這個問題。謝謝。 :)用戶可以輸入多的數字,因爲他們喜歡並會停止,如果他們將進入零然後得到他們已經進入

+1

沒有看到一個問題。 –

+0

你應該在ELSE總數= total + num;'中做全部的事,你應該'break;'在'cout <<之後循環「總和爲:」<< total << endl;'這個語句。 – Nikunj

+0

你在調試程序時發現了什麼? –

回答

0

要打印一些事情:

cout<<"The sum is : " << total << endl; 
0

您將要放置break;語句作爲你的條件if(...){...}聲明的最後一行。當程序到達break語句時,它將退出while循環並繼續執行程序結束。現在,你的循環在cout有新的流寫入它之前退出,並且總數已更新。

其次,你想要把總價值在輸出流:

cout << "The sum is : " << total << endl; 

目前,你只是打印出字符串"The sum is :"

此外,system("PAUSE");是一個外殼和操作系統相關聲明,而且通常不被視爲良好的編碼習慣。你可能想看看另一種方式來做到這一點:http://www.dreamincode.net/forums/topic/30581-holding-the-execution-window-open/

0
#include <iostream> 
#include <unistd.h> 

int main() { 
    int num = 0, 
     total = 0; 
    std::cout << "Enter as many numbers as you like : " << std::endl; 
    while (std::cin >> num) { 
     if (num == 0) { 
      std::cout << "The sum is : " << total << std::endl; 
      break; 
     } 
     total += num; 
    } 
    return sleep(5); 
} 
相關問題