2016-11-08 51 views
-4
int main() 
{ 
    int i; 
    float number[6]; 
    for (i=0; i<=2; i++) { 
     printf("write number %i\n", i+1); 
     scanf("%i",&number[i]); 
    } 
    printf ("the first number you wrote: %i", number[1]); 
    return 0; 
} 

我無法理解如何打印出索引變量中的第一個數字。答案是永遠0,如果鍵入number[1]number[5]輸出總是0如何打印輸入的第一個數字?

+4

'number'是一個'float'的數組,但是你正在掃描'int'。 –

+2

除此之外,您正在嘗試打印**第二個**號碼。 –

+3

C++中的數組**是基於零的**。而在C++中,你應該使用'std :: cout'和'std :: cin',而不是舊的C函數,特別是不要特別容易出錯的'scanf'。 –

回答

1

我不知道,當IM打印出的第一個數字寫什麼時,就是回答總是0

但從這句話很明顯不打印第一號進入

printf ("the first number you wrote: %i", number[1]); 

number[1]指您輸入秒號,請嘗試使用number[0]代替number[1]

printf ("the first number you wrote: %i", number[0]); 

從上面的一個分開,還有一個問題。 您使用了錯誤的格式說明floatscanf()printf聲明

使用%f當掃描或打印float的,%iint

一般採用未定義的行爲錯了格式說明結果,看看這個:What can happen if printf is called with a wrong format string?

另外,儘量避免使用printf()scanf(),並使用std::coutstd::cin,正如其他人所指出的那樣。

相關問題