
以下のプログラムは算数の九九を表示させるプログラムです。
#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列きれいにそろうのも不思議なのですが?
これは次回の質問に回します。)
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
プログラムが動いているようですので、試してみればいいと思います。
・%2d
・%02d
・%d
・%4d
・%04d
上記5通りくらい試して出力を比較すれば、
> (マス目みたいに縦9行、横9列きれいにそろうのも不思議なのですが?
> これは次回の質問に回します。)
この疑問の答えも出てくるでしょう。
どうでしょうか。
この回答への補足
分かりやすいご解説ありがとうございました。
以下試しました。
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
ご回答ありがとうございました。
%の意味をてっきり、÷→/と勘違いしていたところがあり、「書式指定文字」
とのことで、納得しました。C言語も実プログラムらしき面を少し実感しました、先が楽しみです^^
No.4
- 回答日時:
> printf( " %2d", p * q );
pxqの計算結果を表示しています。
%2dは表示の書式で、%dで整数値を表示・%2dでは2文字分の幅で整数を表示となります。
九九の計算結果という事なので81=9x9が最大、最大の値で2桁で表示できる事から2桁で揃えて表示されているのだろうと思います。
No.2
- 回答日時:
No.1
- 回答日時:
%2dのところが、後のp*qの値に置き換わって出力される、というのは理解できてますね?
printfのマニュアルや解説を読んでください。%で始まる書式指定の方法が必ず載ってるはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構造体メンバの個数
-
コンパイルエラーについて
-
アドレスの比較について
-
getchar()マクロによる空白文字...
-
三角形の判別
-
3つの入力した数値の大小比較...
-
C++でfprintfやprintf,fopenな...
-
8人分のテストの点数を入力し、...
-
wsprintf関数(書式制御文字列...
-
LU分解法のピボット選択機能実...
-
c言語で2000年以降カレンダーを...
-
C言語に関して質問です。 次の...
-
%P と %X の違い
-
既約分数の表示プログラム
-
10個出力で改行したいのですが...
-
boolean型の戻り値は可能か
-
C言語 繰り返しの問題
-
Visual Sutdio 2017 でのC言語...
-
文字と数字の判定について
-
数当てゲームを作っているのですが
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
c言語でAからZまでを表示する...
-
(C言語)めちゃくちゃな値にな...
-
コマンドラインに出力した文字...
-
コンパイルエラーについて
-
コマンドプロンプトがすぐ消える
-
勝率をプログラムに
-
テキストカーソル位置の取得
-
三角形の判別
-
【C言語教えてください】sin波...
-
4の倍数を論理演算で表す。。
-
C言語で、「自然数nを入力し、n...
-
入力したお金の金額からお札の...
-
cshの文字列操作(0埋め)
-
switch分のケースを範囲数?に...
-
scanfに文字が入力されたときに...
-
プログラミングについての質問です
-
unsigned int型について
-
ダブルポインタで2次元配列を作成
-
円の面積を求めるプログラミン...
おすすめ情報