0

私はCプログラミングの本からいくつかの質問を研究していて、興味深い質問に遭遇しました。

  1. 正しいか間違っているか?

    ステートメント:

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

    4つの引数、、、"%d:%f:%1f\n"およびが&a含まれます。&b&c

    与えられた答えは本当でした。なんでそうなの?ここには4つの引数/パラメータが表示されません。

  2. 正しいか間違っているか?

    ステートメント:

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

    画面+12

    答えは誤りでした。なんでそうなの?

4

4 に答える 4

6

初め;

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

4 つの引数が含まれます。

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

2番;

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

2 はフィールドの最小幅を示しますが、123 は 2 文字よりも広く、完全に印刷されます。は+符号を強制するため、結果は になり+123ます。

于 2012-08-26T13:26:37.897 に答える
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): 符号付き 10 進整数
于 2012-08-26T13:25:02.997 に答える
2

最初のケースでは、引数は、format ステートメントのパラメーターではなく、関数に渡されるパラメーターを意味します。2 番目の質問では、plus はプラスを出力することを示し、2 は出力に少なくとも 2 つの場所を使用することを示します。Prints は数値を切り捨てないため、3 桁すべてが出力されます。

于 2012-08-26T13:26:46.377 に答える
1

最初の引数: "%d:%f:%1f\n"

2 番目の引数: &a

3 番目の引数: &b

4 番目の引数: &c

関数呼び出しで関数に渡される引数は 4 つあります。

于 2012-08-26T13:25:45.167 に答える