
このプログラムだとたとえば 1、100、99を入力したときに間違った値を出します。どうすればいいでしょうか?おねがいします。
#include <stdio.h>
int main(void)
{
int a, b, c, m;
int max;
printf("1個目の数値:"); scanf("%d", &a);
printf("2個目の数値:"); scanf("%d", &b);
printf("3個目の数値:"); scanf("%d", &c);
max = a;
if(max < b)
max = b;
if(max <= c)
m = max;
printf("%d, %d, %d の中央値は%dです。\n", a, b, c, m);
}
No.3ベストアンサー
- 回答日時:
あまり自信はありませんが、以下のような感じではいかがでしょうか。
int main(void)
{
int num[3][2];
int max, i, j;
/* 配列初期化 */
memset(&num[0][0], 0, sizeof(num));
/* 数値入力 */
for(i = 0; i < 3; i ++)
{
printf("%d個目の数値:",i+1); scanf("%d", &num[i][0]);
}
/* 数値の大きい順番に順位をつける */
for(i = 0; i < 3; i ++)
{
num[i][1] = 1;
for(j = 0; j < 3; j ++)
{
if((i != j) && (num[i][0] < num[j][0]))
{
num[i][1] ++;
}
}
}
/* 中央値算出 */
max = 0;
for(i = 0; i < 3; i++)
{
if(num[i][1] == 2)
{
max = num[i][0];
}
}
printf("%d, %d, %d の中央値は%dです。\n", num[0][0], num[1][0], num[2][0], max);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#if 1 #elseの意味について
-
構文エラー";"が型の前にあり...
-
getcの改行判定
-
配列を関数に渡す方法
-
初心者です。for文、if文を使っ...
-
最早開始時間と最遅完了時刻を...
-
【C++】関数ポインタの使い方
-
既定のコンストラクタがありま...
-
Aの値からBの値を除するとは??
-
「Aに対するBの割合」と「Aに対...
-
信頼区間の1.96や1.65ってどこ...
-
a^2の√=a が成り立たない場合
-
VB6.0での小数点の扱いについて
-
配列をnビットシフトする
-
数学 一次関数 関数 y=-3/4x+k(...
-
c languageで 簡単な質問があ...
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
プログラムでの数字につく”f”の...
-
C言語で複数列のデータを1列の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#if 1 #elseの意味について
-
構文エラー";"が型の前にあり...
-
for文の中にswitch文はいれられ...
-
配列を使って魔方陣
-
C言語 数字以外を入力させない...
-
10進数からN進数に変換するプロ...
-
配列を関数に渡す方法
-
scanfが実行されません
-
C言語で電卓を作成する。
-
C言語・最大値を算出するプロ...
-
C言語階乗の総和を求める
-
実行すると if文 に矛盾
-
計算結果がlong型以上になる場...
-
C言語プログラム
-
C言語。どうしてコンパイルでき...
-
c言語for文
-
getcの改行判定
-
C言語で勉強中(max,min)の出し方
-
C言語 プログラム
-
SIGALRMでプロセス終了
おすすめ情報