サンプルプログラムに関する疑問

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ai

サンプルプログラムに関する疑問

#1

投稿記事 by ai » 15年前

初めまして。C言語ド素人です。本当に低レベルなのですが質問させて下さい!
ニ次元配列の全てのデータを表示するプログラム↓に関してなのですが、
下線部分、テキストでは「%3d」となっているのですがなぜ3を入れるのか分かりません;
このソースでも動いたのですが、省略しても良いものなのでしょうか?
-------------------------------------------------------------------------------------------------
#include<stdio.h>
main()
{
int x, y;
int data[3][5]={{8,12,3,2,19},
{8,2,7,16,8},
{1,11,15,13,6}};

for(x=0; x<3; x++){

for(y=0; y<5; y++){
printf("%d ",data[x][y]);}

printf("\n");

}

return 0;
}

アバター
bitter_fox
記事: 607
登録日時: 15年前
住所: 大阪府

Re: サンプルプログラムに関する疑問

#2

投稿記事 by bitter_fox » 15年前

ai さんが書きました: 下線部分、テキストでは「%3d」となっているのですがなぜ3を入れるのか分かりません;
このソースでも動いたのですが、省略しても良いものなのでしょうか?

printf("%d ",data[x][y]);
%3dの3は出力する最小フィールド幅を指定しています。

最小フィールド幅と言うのは最低何文字分出力するかのことで、この場合は最低3文字出力するので引数data[x][y]が3桁に満たないときはスペースで補って表示されます。
(もし3桁を上回ったとしてもその分もちゃんと表示されます)
これはレイアウトを揃えるために使われています。
ですので、省略したらレイアウトが崩れてしまう可能性があります。

フォーマット指示については以下が参考になります。
http://www.geocities.jp/ky_webid/c/040.html

ai

Re: サンプルプログラムに関する疑問

#3

投稿記事 by ai » 15年前

bitter_foxさん

丁寧な説明、どうもありがとうございます!とても助かりました(^^;
やはり意味のある数字だったのですね…引き続き頑張ります!!

閉鎖

“C言語何でも質問掲示板” へ戻る