C言語の初心者です。
C言語の分岐処理の書き方(アルゴリズム)について
分からない事があり質問しました。
A、B、C、Dという変数があり、
この変数にはランダムに、ある浮動小数が代入されます。
A、B、C、Dの値を比較して、
(1)一番小さい値が存在する場合
(2)一番小さい値が2つ存在する場合
(3)上記以外の場合
といったように場合分けを行い、
(1)一番小さい値をディスプレイに表示。
(2)アルファベット順で早い方
(Ex. AとBならA、但しDとAの場合はD)
をディスプレイに表示。
(3)Aをディスプレイに表示。
といったように、場合分けによってそれぞれ
処理を行いたいのです。
条件を&&や||で増やせばできると思うのですが、
端的に書くにはどうしたらよいか悩んでいます。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
#include <stdio.h>
#define ON 1
#define OFF 0
void main(void){
float A,B,C,D;
char name[]={ 'A','B','C','D' };
float *var[4];
int flag[] = { OFF, OFF, OFF, OFF };
int i, pos, size, count=0;
float min;
char varName;
var[0]=&A;var[1]=&B;var[2]=&C;var[3]=&D;
size = sizeof(name)/sizeof(char);
for(i = 0; i < size ; i++){
printf("%c:",name[i]);
scanf("%f", var[i]);
}
min=A;
for(i = 1; i < size ; i++)
if(min > *var[i])
min = *var[pos=i];
for(i = 0; i < size ; i++){
if(min == *var[i]){
flag[i] = ON;
count++;
}
}
switch(count){
case 1:
varName=name[pos];
break;
case 2:
if(flag[0]*flag[3]){ //特殊条件:DとAの時D
varName = 'D';
break;
}
for(i=0 ; i < size ; i++){
if(flag[i]) break;
}
varName = name[i];
break;
default:
varName = 'A';
min = A;
}
printf("selection:%c=%f\n", varName, min);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) 関数式を教えてください。 AとBのセルがあり、Aのセルに値がある場合はCのセルへ1と表示。 AとBの 5 2022/03/23 14:38
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Excel(エクセル) 1から9まで表示するのに必要なボタン 1 2023/02/05 19:06
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
1日1回引けるJavaScriptおみく...
-
ジェネレーターの作り方
-
GASでundefinedエラーが出ます
-
アクセス時からのカウントダウ...
-
C#で、ContextMenuStripに動的...
-
第3日曜日のみの日付を取得、...
-
JAVASCRIPTで万年カレンダーを...
-
ASP.NET MVCでObjectをjsに渡す
-
なぜmatchメソッドがエラーにな...
-
VSCODE[Python]の設定について
-
x軸にはスクロールしない、ペー...
-
今日からnヶ月後(前)
-
GASのエラー「undefined からプ...
-
JavaScriptを使って毎日決まっ...
-
JavaSの追加計算
-
javascript sort 配列の中を...
-
極小コードに挑戦!part2 数列...
-
1日1回だけ引けるjavascriptお...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
javaScriptのコードの修正をお...
-
ジェネレーターの作り方
-
翌月を取得するGASが分かりません
-
ASP.NETのコントロールの値をJa...
-
GASでundefinedエラーが出ます
-
C#で、ContextMenuStripに動的...
-
GASでGoogleフォームの自動返信...
-
ASP.NET MVCでObjectをjsに渡す
-
VSCODE[Python]の設定について
-
C# 演算 奇数と偶数 表現の仕方
-
javascriptでiframeのURL変更は?
-
イベントが初めの一回しか起き...
-
なぜmatchメソッドがエラーにな...
-
gas スプレッドシートがアクテ...
-
jqGridについて
-
var exports = exports || {}; ...
-
JavaScriptで文字列の特定文字...
-
javascriptでテーブルに追加し...
おすすめ情報