
以下のプログラムは算数の九九を表示させるプログラムです。
#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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
このプログラムの実行結果につ...
-
カレンダーのプログラムについて
-
テキストカーソル位置の取得
-
初心者です。C言語でクイズを作...
-
CPU温度・負荷等を調べるには
-
改行について 1行に何個かづ...
-
C言語で四則演算を使って10を作...
-
Cのdoubleの浮動小数点表示につ...
-
球の体積と表面積を表示するプ...
-
for文内でscanf関数により配列...
-
10個出力で改行したいのですが...
-
C言語の問題について教えていた...
-
C言語 プログラミング
-
C言語のプログラミングがうまく...
-
ピラミッド表示プログラム。
-
*を使ったジグザグのラインをプ...
-
c言語でAからZまでを表示する...
-
共用体の個々のメンバのアドレ...
-
C言語で四則演算を使って結果が...
-
boolean型の戻り値は可能か
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンパイルエラーについて
-
printf で二進表示を行いたい。
-
コマンドラインに出力した文字...
-
(C言語)めちゃくちゃな値にな...
-
c言語でAからZまでを表示する...
-
printfの出力内の文字をdefine...
-
defineで定数が置き換えられな...
-
c言語で2000年以降カレンダーを...
-
cshの文字列操作(0埋め)
-
10個出力で改行したいのですが...
-
4の倍数を論理演算で表す。。
-
ホームページをC言語で作りたい...
-
コマンドプロンプトがすぐ消える
-
教えてください!!
-
Cプログラムについて
-
サイコロをふって、出た目のパ...
-
strcmp
-
じゃんけんゲームの応用
-
C言語でマウス入力(クリックや...
-
printfの有無で値が変化する
おすすめ情報