ページ 1 / 1
最大の値の文字を求めるプログラムについて
Posted: 2008年6月02日(月) 13:31
by ディオ
こんにちは。
C言語を始めたばかりの初心者ですが、よろしくお願いいたします。
早速質問させていただきます。
a, b, c, d, e, fという変数を定義して、
scanf関数でそれぞれの値を入力して、
そのなかで最大の値が入力された文字を求めるプログラムはどう書けばよいのでしょうか。
自分で考えてみたところ、6つの数の中での最大値を求めることはできたのですが、
出力は最大値の数字になってしまい、"a"などの文字で出力するプログラムがわかりません。
わかりにくい質問かとは思いますがよろしくお願いします。
Re:最大の値の文字を求めるプログラムについて
Posted: 2008年6月02日(月) 13:54
by バグ
とりあえず、その途中まで出来ているプログラムをここに載せてみては如何でしょうか?
Re:最大の値の文字を求めるプログラムについて
Posted: 2008年6月02日(月) 15:05
by ディオ
そうですね、すみません。
#include <stdio.h>
int main(void){
int a, b, c, d, e, f, m, n;
int max;
printf("数値を6つ入力\n");
printf("a=");
scanf("%d", &a);
printf("b=");
scanf("%d", &b);
printf("c=");
scanf("%d", &c);
printf("d=");
scanf("%d", &d);
printf("e=");
scanf("%d", &e);
printf("f=");
scanf("%d", &f);
max=a;
if(a > max){ max=a; }
if(b > max){ max=b; }
if(c > max){ max=c; }
if(d > max){ max=d; }
if(e > max){ max=e; }
if(f > max){ max=f; }
printf("最大値 = %d\n", max);
return 0;
}
これは最大値の値を求めるプログラムと自分でもわかるのですが、
どうしたら最大値は"a"とか、文字で表せるんでしょうか?
アドバイスよろしくお願いしますm(_ _)m
Re:最大の値の文字を求めるプログラムについて
Posted: 2008年6月02日(月) 15:24
by Mist
質問の意味するところがよくわかりませんが
今だと「最大値 = 100」と表示されるのを「最大値 a = 100」と表示したいということでしょうか?
そうであれば
char max_c;
max=a;
max_c = 'a';
// 初期化で入れているのでこの比較は無駄 if(a > max){ max=a; }
if(b > max){ max=b; max_c = 'b'; }
if(c > max){ max=c; max_c = 'c'; }
if(d > max){ max=d; max_c = 'd'; }
if(e > max){ max=e; max_c = 'e'; }
if(f > max){ max=f; max_c = 'f'; }
printf("最大値 %c = %d\n", max_c, max);
でいいと思いますが。
Re:最大の値の文字を求めるプログラムについて
Posted: 2008年6月02日(月) 15:32
by バグ
あ、別に怒っている訳ではないですよ(苦笑)
ただ、どういうやり方で、どういった答えを求められているのかを推測するのに便利かなぁ…と思っただけですので(^_^;)
凄く簡単な方法を記述しときます。同じような処理が続く場合は関数化したり、するとスッキリしますが、敢えてそういった事はしておりませんので、色々とイジってみてくださいね(^-^)
#include <stdio.h>
int main(void)
{
int a, b, c, d, e, f;
int max;
char name;
printf("数値を6つ入力\n");
printf("a=");
scanf("%d", &a);
printf("b=");
scanf("%d", &b);
printf("c=");
scanf("%d", &c);
printf("d=");
scanf("%d", &d);
printf("e=");
scanf("%d", &e);
printf("f=");
scanf("%d", &f);
max = a;
name = 'a';
if (b > max)
{
max = b;
name = 'b';
}
if (c > max)
{
max = c;
name = 'c';
}
if (d > max)
{
max = d;
name = 'd';
}
if (e > max)
{
max = e;
name = 'e';
}
if (f > max)
{
max = f;
name = 'f';
}
printf("最大値 = %d\n", max);
printf("変数名 = %c\n", name);
return 0;
}
Re:最大の値の文字を求めるプログラムについて
Posted: 2008年6月02日(月) 15:37
by ディオ
ありがとうございます!
char max_c; を定義してやればいいんですね。
わかりにくい質問を汲み取ってくれて、どうもありがとうございました。
Re:最大の値の文字を求めるプログラムについて
Posted: 2008年6月02日(月) 15:42
by ディオ
Mistさん, バグさん
丁寧にどうもありがとうございましたm(_ _)m