解決済みの質問
学校でc言語の課題が出ました。何度考えてもうまくいきません。内容は「5つの数を...
学校でc言語の課題が出ました。何度考えてもうまくいきません。内容は「5つの数を入力し、その中で、最大値、最小値、中心値を求めろ」という問題です。
#include<stdio.h>
int main(void){
からスタートで、分かる関数は、
for文とif文は勉強しました!
なんとか、forとifでプログラムを組めないでしょうか?
アドバイスください
-
- 質問日時:
- 2012/2/12 22:37:52
-
- 解決日時:
- 2012/2/14 17:47:57
-
- 回答数:
- 2
-
- お礼:
- 知恵コイン
- 25枚
-
- 閲覧数:
- 100
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
ベストアンサーに選ばれた回答
このあたりは、
ソート(並べ替え)、順位付け、のアルゴリズムで基本ですので、
理解しておくべき事項です。
ソートのアルゴリズムになりますが、ここにはいろいろなやり方があります。
選択ソート、バブルソート、など。
課題の意図としたいはここからで、
ソート(並べ替え)すれば、最小、中心、最大は
小さい順に並べ替えした後の1番め、3番め、5番めと決まってきます。
そういうことかと思います。
何を何を比べていくのか、そこから整理してみてください。
値1つ目と2つ目を比べる、
次に値1つ目と3つ目を比べる、
次に値1つ目と4つ目を比べる、
・・
とすれば一応比較できて、どれが最大かはIF文で値を退避すればわかります。最小も。
言い換えれば
値1つ目と(それに+1したもの=2つめ)を比べる、
次は、値1つ目と(それに+2したもの=3つめ)を比べる、
次は、値1つ目と(それに+3したもの=4つめ)を比べる、
・・・
です。
総当りのリーグ戦などでどのチームとどのチームが戦いますか?、に近いです。
1-2、1-3、1-4、1-5、
2-1、2-3、2-4、2-5、
3-1、3-2、・・・・
です。
先攻チーム1-5の繰り返し、と後攻チーム1-5の繰り返し、
2重ループです。
5×5ありますが、同じチームはしない。(5つの数字で比較対象はほかの4つ)
そういうイメージから取り掛かってもいいと思います。
それか、
九九の表をイメージする。9×9の2重ループです。
1の段、2の段、・・・。何と何をかけた結果なのか。
ループが出来ると後は、必要に応じてIF文を入れる。
- 違反報告
- 回答日時:2012/2/13 11:39:12
- この質問・回答は役に立ちましたか?
- 役に立った!
お役立ち度:
0人が役に立つと評価しています。
ベストアンサー以外の回答
(1件中1〜1件)
中心値って中央値(5つの数の内の真ん中の値)でいいのかな?
普通にソートして、1個目と3個目と5個目の要素を表示すればいいのでは?
”C言語 ソート”でググればやり方は分かるはず。
(直近にソートを習ったのでは?)
入力の仕方は好きにしたらいいけど、エラー処理はちゃんとしよう。
(数ってなんだ?C言語には数の型が何個かあるよ)
あと、5個以外で入力が終わることもあるかもね。
じゃ、頑張ってください。
- 違反報告
- 回答日時:2012/2/13 00:50:21

