初めまして。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: サンプルプログラムに関する疑問
%3dの3は出力する最小フィールド幅を指定しています。ai さんが書きました: 下線部分、テキストでは「%3d」となっているのですがなぜ3を入れるのか分かりません;
このソースでも動いたのですが、省略しても良いものなのでしょうか?
printf("%d ",data[x][y]);
最小フィールド幅と言うのは最低何文字分出力するかのことで、この場合は最低3文字出力するので引数data[x][y]が3桁に満たないときはスペースで補って表示されます。
(もし3桁を上回ったとしてもその分もちゃんと表示されます)
これはレイアウトを揃えるために使われています。
ですので、省略したらレイアウトが崩れてしまう可能性があります。
フォーマット指示については以下が参考になります。
http://www.geocities.jp/ky_webid/c/040.html
-
ai
Re: サンプルプログラムに関する疑問
bitter_foxさん
丁寧な説明、どうもありがとうございます!とても助かりました(^^;
やはり意味のある数字だったのですね…引き続き頑張ります!!
丁寧な説明、どうもありがとうございます!とても助かりました(^^;
やはり意味のある数字だったのですね…引き続き頑張ります!!