-PR-
  • 困ってます
  • 質問No.6913215
解決
済み

printf( " %2d", p * q );

  • 閲覧数3212
  • ありがとう数1
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 28% (43/151)

以下のプログラムは算数の九九を表示させるプログラムです。
 
#include <stdio.h>
int main()
{
int p, q;

for( p = 1 ; p <= 9 ; p++ ){
for( q = 1 ; q <= 9 ; q++ )
printf( " %2d", p * q );

printf( "\n" );
}

return 0;
}
 以上のプログラムの中に「printf( " %2d", p * q );」とあります。 
%2dは何を表しているのか分かりません?
 (マス目みたいに縦9行、横9列きれいにそろうのも不思議なのですが?
   これは次回の質問に回します。)
よろしくお願いいたします。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル8

ベストアンサー率 31% (14/45)

プログラムが動いているようですので、試してみればいいと思います。


 ・%2d
 ・%02d
 ・%d
 ・%4d
 ・%04d

上記5通りくらい試して出力を比較すれば、

> (マス目みたいに縦9行、横9列きれいにそろうのも不思議なのですが?
>   これは次回の質問に回します。)

この疑問の答えも出てくるでしょう。

どうでしょうか。
補足コメント
gogatunijyuku

お礼率 28% (43/151)

 分かりやすいご解説ありがとうございました。

 以下試しました。
saijyo_739様のご解説の通りだと思います。
%2d
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
 %02d
01 02 03 04 05 06 07 08 09
02 04 06 08 10 12 14 16 18
03 06 09 12 15 18 21 24 27
04 08 12 16 20 24 28 32 36
05 10 15 20 25 30 35 40 45
06 12 18 24 30 36 42 48 54
07 14 21 28 35 42 49 56 63
08 16 24 32 40 48 56 64 72
09 18 27 36 45 54 63 72 81

%d
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81

%4d
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81

%04d
0001 0002 0003 0004 0005 0006 0007 0008 0009
0002 0004 0006 0008 0010 0012 0014 0016 0018
0003 0006 0009 0012 0015 0018 0021 0024 0027
0004 0008 0012 0016 0020 0024 0028 0032 0036
0005 0010 0015 0020 0025 0030 0035 0040 0045
0006 0012 0018 0024 0030 0036 0042 0048 0054
0007 0014 0021 0028 0035 0042 0049 0056 0063
0008 0016 0024 0032 0040 0048 0056 0064 0072
0009 0018 0027 0036 0045 0054 0063 0072 0081
投稿日時 - 2011-08-04 04:57:40
お礼コメント
gogatunijyuku

お礼率 28% (43/151)

ご回答ありがとうございました。
 %の意味をてっきり、÷→/と勘違いしていたところがあり、「書式指定文字」
とのことで、納得しました。C言語も実プログラムらしき面を少し実感しました、先が楽しみです^^
投稿日時 - 2011-08-04 05:08:08
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.5
レベル7

ベストアンサー率 11% (1/9)

桁数指定をしています。この場合は、10進数の整数を2桁分だけ表示します。
桁数指定をしています。この場合は、10進数の整数を2桁分だけ表示します。
  • 回答No.4
レベル11

ベストアンサー率 53% (119/222)

> printf( " %2d", p * q ); pxqの計算結果を表示しています。 %2dは表示の書式で、%dで整数値を表示・%2dでは2文字分の幅で整数を表示となります。 九九の計算結果という事なので81=9x9が最大、最大の値で2桁で表示できる事から2桁で揃えて表示されているのだろうと思います。
> printf( " %2d", p * q );

pxqの計算結果を表示しています。
%2dは表示の書式で、%dで整数値を表示・%2dでは2文字分の幅で整数を表示となります。
九九の計算結果という事なので81=9x9が最大、最大の値で2桁で表示できる事から2桁で揃えて表示されているのだろうと思います。
  • 回答No.1
レベル14

ベストアンサー率 55% (1857/3366)

%2dのところが、後のp*qの値に置き換わって出力される、というのは理解できてますね? printfのマニュアルや解説を読んでください。%で始まる書式指定の方法が必ず載ってるはずです。
%2dのところが、後のp*qの値に置き換わって出力される、というのは理解できてますね?
printfのマニュアルや解説を読んでください。%で始まる書式指定の方法が必ず載ってるはずです。
  • 回答No.2
レベル14

ベストアンサー率 61% (1597/2589)

キーワード「printf %2d」でGoogle検索して4番目にヒットするのがこちら。 http://www.geocities.jp/ky_webid/c/006.html
キーワード「printf %2d」でGoogle検索して4番目にヒットするのがこちら。
http://www.geocities.jp/ky_webid/c/006.html
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


-PR-

ピックアップ

-PR-
ページ先頭へ