中央値をifで

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
たくみ

中央値をifで

#1

投稿記事 by たくみ » 1年前

#include <stdio.h>
int main(void)
{
int a, b, c;
/* a, b, c の入力 */
if(a >= b){
if(b >= c) {
printf("(%d, %d, %d)の中央値は %d¥n", a, b, c, b); } else if(a >= c) {
printf("(%d, %d, %d)の中央値は %d¥n", a, b, c, c); } else {
printf("(%d, %d, %d)の中央値は %d¥n", a, b, c, a); }
} else if(/* ......以降,考えてみること */ return 0;

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 中央値をifで

#2

投稿記事 by みけCAT » 1年前

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。

コードしか書かれていないようですが、何か質問はありますか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
あたっしゅ
記事: 663
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 中央値をifで

#3

投稿記事 by あたっしゅ » 1年前

東上☆海美☆「
配列に入れて、ソートして、中央の値([ 0 ][ 1 ][ 2 ] の場合は、[ 1 ])を取り出せば、いいのでは ?
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 中央値をifで

#4

投稿記事 by みけCAT » 1年前

・共通の出力を行う部分は1個にまとめる
・それぞれの値が中央値になっているかを確認し、中央値になっているものを出力する

コード:

#include <stdio.h>
int main(void)
{
    int a, b, c;
    /* a, b, c の入力 */

    printf("(%d, %d, %d)の中央値は ", a, b, c);
    if ((b <= a && a <= c) || (c <= a && a <= b)) printf("%d", a);
    else if ((a <= b && b <= c) || (c <= b && b <= a)) printf("%d", b);
    else printf("%d", c);
    /* 一般的ではないと思うが、もとのコードを尊重して改行ではなくU+00A5とnを出力する */
    printf("¥n");
    return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

box
記事: 2002
登録日時: 13年前

Re: 中央値をifで

#5

投稿記事 by box » 1年前

データが3つしかないならif文でもよいかもしれませんが、
データがもっと多くなったときや個数が偶数の場合などに
対応することを考えると、別の回答にあるとおり
ソートして求める(関数を作る)のが妥当ではないかと思います。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

返信

“C言語何でも質問掲示板” へ戻る