最大の値の文字を求めるプログラムについて

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

最大の値の文字を求めるプログラムについて

#1

投稿記事 by ディオ » 10年前

こんにちは。

C言語を始めたばかりの初心者ですが、よろしくお願いいたします。

早速質問させていただきます。


a, b, c, d, e, fという変数を定義して、

scanf関数でそれぞれの値を入力して、

そのなかで最大の値が入力された文字を求めるプログラムはどう書けばよいのでしょうか。

自分で考えてみたところ、6つの数の中での最大値を求めることはできたのですが、

出力は最大値の数字になってしまい、"a"などの文字で出力するプログラムがわかりません。


わかりにくい質問かとは思いますがよろしくお願いします。

バグ

Re:最大の値の文字を求めるプログラムについて

#2

投稿記事 by バグ » 10年前

とりあえず、その途中まで出来ているプログラムをここに載せてみては如何でしょうか?

ディオ

Re:最大の値の文字を求めるプログラムについて

#3

投稿記事 by ディオ » 10年前

そうですね、すみません。
#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

Mist

Re:最大の値の文字を求めるプログラムについて

#4

投稿記事 by Mist » 10年前

質問の意味するところがよくわかりませんが
今だと「最大値 = 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:最大の値の文字を求めるプログラムについて

#5

投稿記事 by バグ » 10年前

あ、別に怒っている訳ではないですよ(苦笑)
ただ、どういうやり方で、どういった答えを求められているのかを推測するのに便利かなぁ…と思っただけですので(^_^;)

凄く簡単な方法を記述しときます。同じような処理が続く場合は関数化したり、するとスッキリしますが、敢えてそういった事はしておりませんので、色々とイジってみてくださいね(^-^)
#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:最大の値の文字を求めるプログラムについて

#6

投稿記事 by ディオ » 10年前

ありがとうございます!

char max_c; を定義してやればいいんですね。

わかりにくい質問を汲み取ってくれて、どうもありがとうございました。

ディオ

Re:最大の値の文字を求めるプログラムについて

#7

投稿記事 by ディオ » 10年前

Mistさん, バグさん

丁寧にどうもありがとうございましたm(_ _)m

閉鎖

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