2012-08-26 60 views
1

我正在學習從C編程書籍的一些問題,但是遇到一個有趣的問題:4個參數? 3?

  1. 真的還是假的?

    聲明:

    scanf("%d:%f:%1f\n", &a, &b, &c); 
    

    包含四個參數"%d:%f:%1f\n"&a&b&c

    給出的答案是true。這是爲什麼?我在這裏看不到4個參數/參數。

  2. 對或錯?

    聲明:

    printf("%+2d",123); 
    

    顯示+12

    答案是。這是爲什麼?

+1

關於#1:你看到了多少個論點(我算四個)?關於#2:你會期望什麼 - 你試過了嗎? – home

+0

你好,歡迎來到SO。請考慮編輯您的問題,以便使用格式化功能。代碼通常用反引號標記,導致像'this'這樣的東西。另外,我想你的第一個問題中缺少的第四個'''是由於你的複製造成的偶然的。 –

+1

然後,請一次只問一個問題。在本案例中,你可能已經從第一個問題的答案中學到了,避免第二次,因爲你知道在哪裏尋找它。 –

回答

5

問題#1

參數是那些由逗號分隔:)。

scanf("%d:%f:%1f\n", &a, &b, &c); 
    // 1    2 3 4 

問題2

行打印+123,試試吧。

printf("%+2d",123); 

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

簡介:%[flags][width][.precision][length]specifier

  • 標誌(+):部隊前面加上一個加號或減號(+或 - ),結果即使是正數。默認情況下,只有負數前面帶有 - 符號。
  • 寬度(2):要打印的最小字符數。如果要打印的值小於此數字,則結果將填充空白。即使結果較大,該值也不會被截斷。
  • 說明符(d):有符號的十進制整數
1

第一個參數:"%d:%f:%1f\n"

第二個參數:&a

第三個參數:&b

第四個參數:&c

在函數調用中傳遞給函數的參數有四個。

6

首先;

scanf("%d:%f:%1f\n", &a, &b, &c); 

包含4個參數;

1: "%d:%f:%1f\n" 
2: &a 
3: &b 
4: &c 

第二;

printf("%+2d",123); 

2表示最小字段寬度,但123是寬於2個字符和將全部打​​印。 +強制一個符號,所以結果是+123

2

在第一種情況下,參數意味着傳遞給函數的參數,而不是格式語句參數。在第二個問題中,加號表示輸出一個加號,而2表示輸出至少使用兩個地點。打印不會截斷一個數字,所以它會打印出全部三位數字。

相關問題