• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:cプログラム)

Cプログラムで最大と最小の身長を求める方法

このQ&Aのポイント
  • Cプログラムで10人の身長を入力し、配列を使って最大と最小の身長を求める方法について教えてください。
  • 現在のプログラムでは一人の身長データしか入力できないため、どのように修正すればよいか教えてください。
  • プログラムのコードを以下に示します。最大の身長はX.X、最小の身長はY.Yです。

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

  • ベストアンサー
回答No.4

やっと、お答えできる理解が出来ました。何しろ、scanfって、あんまり使ったことがなかったので、いい勉強になりました。 scanf(%5.1f",h[i]); の「5.1」は、最大フィールド幅と呼ばれ、入力の最大幅を示しています。 これは、標準入力の事ですから、必ず文字列なわけです。従って、ここに少数を指定することは、出来ないようです。 ここを、「5」とすると、5桁以上の入力は次の関数の引数に回されるので試してみてください。当然ですが、この桁数にキー入力時の小数点は含まれます。

longagodsg
質問者

お礼

なるほど! 正常に動作しました、 丁寧に教えていただきありがとうございました

その他の回答 (6)

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.7

>格納した後、使ってないですよ。 もっと正確に書くと、「最大値・最小値を求めるためだけに配列に格納する必要は 全くないのでは?」ってことです。

longagodsg
質問者

お礼

ありがとうございました!

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.6

>ここに少数を指定することは、出来ないようです。 誤:少数 正:小数 ところで、質問者さん。 入力した値を配列に格納する必要は、本当にあるんですか? 格納した後、使ってないですよ。

longagodsg
質問者

お礼

そうですねー 自分もそう思うのですが、配列を使って(条件に合う)プログラムを組む という課題でしたので配列を使いました

回答No.5

すみません、引数に&を付け忘れました。

longagodsg
質問者

お礼

ありがとうございました!

  • shiren2
  • ベストアンサー率47% (139/295)
回答No.3

軽くテストしてみましたが、scanfで動作がおかしくなっているようですね。 仕様の詳細には詳しくないですが、小数点以下を指示すると問題があるようです。 /* scanf("%5.1f",&h[i]); */ scanf("%5f",&h[i]);

longagodsg
質問者

お礼

正常に動作しました! ありがとうございました

回答No.2

処理系と実行環境を書いてみてください。

longagodsg
質問者

お礼

回答ありがとうございます 処理系はコンパイラ 実行環境はよくわからないのですが、TeraTermをつかってます

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

おかしくないと思うけど、どうおかしいのですか?

longagodsg
質問者

お礼

1番目の身長を入力してください 122 2番目の身長を入力してください 3番目の身長を入力してください 4番目の身長を入力してください 5番目の身長を入力してください 6番目の身長を入力してください 7番目の身長を入力してください 8番目の身長を入力してください 9番目の身長を入力してください 10番目の身長を入力してください 最大の身長は 0.0,最小の身長は 0.0です。 u224226@cc[4]% このようになってしまいます

関連するQ&A