switch-case

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

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: switch-case

Re: switch-case

#2

by みけCAT » 2年前

C言語においては、
比較演算子 (==、!=、<、<=、>、>=) 、論理AND演算子(&&)、論理OR演算子(||)、論理NOT演算子(!)の評価結果は
真のとき1、偽のとき0となるので、例えば

コード:

#include <stdio.h>

int main(void) {
	int value = 42;

	switch (0 <= value && value < 60) {
		case 1:
			puts("D");
			break;
		case 0:
			puts("Dではない");
			break;
	}

	return 0;
}
のように書くことで

コード:

#include <stdio.h>

int main(void) {
	int value = 42;

	if (0 <= value && value < 60) {
		puts("D");
	} else {
		puts("Dではない");
	}

	return 0;
}
と等価な処理ができます。
他の判定についても、これを並べるといいでしょう。

「エラー」の処理は、「エラー」の出力処理を最後に置き、
1. D~Sのどれかを出力したら、そこでreturnして「エラー」の出力に行かないようにする
2. D~Sのどれかを出力したかどうかを示すフラグ変数を用意し、出力した状態だったら「エラー」を出力しないようにする
のいずれかで実現すれば、switchのネストが深くならずいいと思います。

switch-case

#1

by 大熊 » 2年前

こんなプログラムかけますか。入力した点数を10で割っても101から109は10扱いになり、ふるいにかけられません。お教えください


以下の実行例のように, 点数を入力すると成績を判定するプログラムを作成しなさい.
入力された点数が
- 0 点以上 60 点未満のとき D
- 60 点以上 70 点未満のとき C
- 70 点以上 80 点未満のとき B
- 80 点以上 90 点未満のとき A
- 90 点以上 100 点以下のとき S
- 上記以外のとき エラー
と表示すること.
ただし, switch-case 文を用いること (if 文, if-else文, および条件演算子を使用してはならない)


実行結果 1 (黄色い文字は標準入力を表す)
点数を入力> 50
成績判定: D


実行結果 2 (黄色い文字は標準入力を表す)
点数を入力> 70
成績判定: B


実行結果 3 (黄色い文字は標準入力を表す)
点数を入力> 100
成績判定: S


実行結果 4 (黄色い文字は標準入力を表す)
点数を入力> 105
成績判定: エラー

ページトップ