• ベストアンサー

基本中の基本!?

次のソースで質問です #include <stdio.h> main() { char x = 'X'; float ran = 42.195; printf("%c感じてみろー!\n",x); printf("フルマラソンは %fKm",ran); } なぜ42.195000kmと表示されるのか良く分かりません。 順番的にkm42.195000のような気が。 第3引数以上あるとますますわかりません。

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

  • ベストアンサー
noname#4564
noname#4564
回答No.1

  > なぜ42.195000kmと表示されるのか良く分かりません。 入門書、リファレンス等に説明が書いてあるはずですが、読んでないのでしょうか? > 順番的にkm42.195000のような気が。 これ↓を実行してみてください。たぶん理解できるでしょう。 printf("%d番 一浪、%d番 信条、%d番 松居\n", 1, 2, 3); ※ 実在の人物、団体とは関係ありません。  

その他の回答 (5)

  • Sam_A
  • ベストアンサー率33% (6/18)
回答No.6

No,#5です。 補足: "フルマラソンは %fKm"の部分も勿論、引数ですよ。 複数指定したい場合はNo,#1さんが書いている通りです。 簡単にするとprintf("%f",ran); ですが、 二ヶ表示だとprintf("%f%f",ran,ran);です。

  • Sam_A
  • ベストアンサー率33% (6/18)
回答No.5

printfとはヘッダー:stdio.hで定義されている標準入出力関数の一つです。(stdとはスタンダード ioはインプットアウトプットをあらわしすなわち標準入出力) printfとは書式付きprintと言うことです。(fはformattingから来ている。) %~の所に数値(変数含む)を何~の書式で出力するというフォーマット(お決まり)があるわけです。 Cの関数は例えばabcの関数が定義してあるとしてabc(x,y,z)があるとします。x,y,zの部分が引数だということはご理解できるとおもいますが、abcをprintfだと考えればC関数の図式が見えてくると思います。 C関数の基本は インプット→加工→アウトプット です。 %fとはfloatのfですなわち浮動小数点で変数ranの値を出力せよという決まりごとです。(標準関数で定義されている)

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.4

参考URL:
http://www.kumei.ne.jp/c_lang/
noname#4564
noname#4564
回答No.3

> よく分からないんですがフォーマットって言うんですね。 > んで、そのフォーマットは第一引数にしか記述できないんですか? > もし第二引数とかにも記述できるとしたら、どういう記述になりますか? 入門書、リファレンス等に説明が書いてあるはずですが、読んでないのでしょうか? というか、No.1は読んでないんでしょうか? 自分がした質問へのコメントを読まずに(無視して)、再質問・・・理解不能です。 どなたか、こんなおバカな私にも理解できるように教えてください。ヽ(´ー`)ノ 小心者ですので、わかりやすく丁寧にお願いします。 (専門用語等はまったくわかりません)  

noname#6521
質問者

補足

無視すると言うよりは分かったので更なる疑問が生まれた。その新たな疑問をするのは2人のどちらかでいいと思い、代表してNo.2に補足しました。 入門書、リファレンスを読んでも分からなかったので質問したのです。 すみません

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.2

#1さんの補足的な説明になりますが、ご容赦ください。 >printf("%c感じてみろー!\n",x); >printf("フルマラソンは %fKm",ran); ですと、結果は、 「Xを感じてみろー」 「フルマラソンは 42.195000km」と表示されますね。 あなたの書かれたソースに回答があります。%のついている文字がありますね。'%c'と'%f'の部分です。 この%cの部分に変数xの値が表示されるんです。%fも同じ様に%fの位置に、変数ranの値が表示されます。

noname#6521
質問者

補足

よく分からないんですがフォーマットって言うんですね。 んで、そのフォーマットは第一引数にしか記述できないんですか?もし第二引数とかにも記述できるとしたら、どういう記述になりますか?