こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

c言語超初心者です。2

#include <stdio.h>

int main(void)
{
int na,nb, nc;
int sum;
double ave;

puts("三つの整数を入力してください.");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);
printf("整数C:"); scanf("%d", &nc);

sum=na+nb+nc;
ave=(double)sum/3;

printf("それらの合計は%5dです。\n", sum);
printf("それらの平均は%5.1fです。\n",ave);

return(0);
}
とういうのを作ったんですが、最後のそれらの合計は%5dとやりその5の意味は整数を10進法で少なくても5桁で表示とありますが、例えば1,2,3と入力しても合計は6とでて5桁ででないんですけど。そういう意味ではありませんか?あとave=(double)sum/3;のところをave=sum/3.0としても問題なくできるのですが、どっちでやったほうがいいとかはありますか?もしあったらその理由も教えてください。

投稿日時 - 2006-12-12 21:51:36

QNo.2597282

すぐに回答ほしいです

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

>printf("それらの合計は%5dです。\n", sum);
確かに5桁で埋めますが、数字の左側4桁分空白で埋まってませんでしたか?

>ave=(double)sum/3;
sumがint型なので、3で構いません。

投稿日時 - 2006-12-12 21:58:54

お礼

なんと空白があった!そういうことだったのか。。。本当にありがとうございました。

投稿日時 - 2006-12-12 22:27:24

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

No.2です。
> すくなくても05桁で表示ってどういうこと??
%05d と言うのは「少なくとも05桁」というわけでなく、少なくとも5桁だけど5桁に満たない時はは0で埋める、という意味です。
printf()の書式に関しては、下記のサイトを参考にしてください。

http://www.mm2d.net/c/c-01.shtml

投稿日時 - 2006-12-12 23:04:33

ANo.3

> ave=(double)sum/3;のところをave=sum/3.0としても

ave = (double) sum / 3; でも
ave = sum / 3.0; でも
ave = sum / (double) 3; でも
ave = (double) sum / (double) 3; でも
どれでもかまいません。
好きなのを使ってください。

投稿日時 - 2006-12-12 22:04:16

お礼

おお!結構自由なんですねプログラムって。大変参考になりました。

投稿日時 - 2006-12-12 22:29:04

ANo.2

もし 00006 と出したいのなら、
printf("それらの合計は%05dです。\n", sum);
とする必要があります。

投稿日時 - 2006-12-12 22:02:36

補足

ほんとだ、、でもなんでそうなるんですか?すくなくても05桁で表示ってどういうこと??

投稿日時 - 2006-12-12 22:29:43