2013-04-04 77 views
1

我是C++新手,我有一個小項目, 我應該從用戶那裏獲得10個數字,然後顯示結果。在C++中向char變量附加整型變量

所以我寫了這個代碼:

#include<stdio.h> 
int main() { 
    int counter=1, 
     allNumbers; 
    float score; 
    while(counter <= 10) { 
     scanf("%f",&score); 
     counter++; 
    } 

    printf("Your entered numbers are : %s\n",allNumber); 
} 

例如用戶輸入2 3 80 50 ...我想表明2,3,80,50,......的結果。

但我不知道該怎麼辦!

+3

看起來像C給我。你確定你在使用C++嗎?在Google上搜索「C array」或「C++ vector」。 – Dave 2013-04-04 19:58:42

+0

@Dave是的,我正在學習C++,這是第一章的基礎考試。 – MajAfy 2013-04-04 20:01:21

+0

@MajAfy你在看哪本書? – 2013-04-04 20:01:42

回答

4

我不知道你在用什麼書,但作者在進入C++之前似乎教你C語言。不討論他們的動機,我會在討論一個理想的C++解決方案之前,寫一個類似於您的代碼風格的答案。

  • 你需要一個數組來存儲你的號碼:double score[10]
  • 陣列索引從零開始,所以更改counter開始在零和去九(而不是從1開始,並持續到十,喜歡你現在已經)
  • 由於score是一個數組,使用&score[count]scanf
  • 調用打印您需要一個循環,以及十個數字。您需要一個標誌,告訴您在打印的號碼後是否需要逗號。循環後添加printf("\n")

至於「理想的」 C++解決得好,它應該接近這一之一:

istream_iterator<double> eos; 
istream_iterator<double> iit(cin); 
vector<double> score; 
copy(iit, eos, back_inserter(score)); 
ostream_iterator<double> oit (cout, ", "); 
copy(score.begin(), score.end(), oit); 

然而,在討論,直到你學習C++標準庫及其使用它仍將難迭代器。

+0

我認爲提問者會對代碼的差異有點震驚。 :D – 2013-04-04 20:15:08

+0

謝謝,但這段代碼很專業,我無法分析我的老師,但是你的描述很好,謝謝 – MajAfy 2013-04-04 20:15:56

+0

好吧,它來得及。知道什麼時候開始並不重要,但是當你熟悉語言並查看迭代器時,保留在你的想法背後並回來是非常好的。 – chris 2013-04-04 20:16:39

0

你可以通過聲明一個由十個數字組成的數組來完成。 你的代碼在這裏:

#include <stdio.h> 
int main() { 
int counter=0; 
float allNumbers[10]; 
while(counter < 10) { 
    scanf("%f",&allNumbers[counter]); 
    counter++; 
     } 

printf("Your entered numbers are : \n"); 
counter=0; 
while(counter < 10) { 
    printf("%f , ",allNumbers[counter]); 
    counter++; 
     } 
}