Created
June 30, 2011 11:34
-
-
Save KOBA789/1056050 to your computer and use it in GitHub Desktop.
情報の授業でやったbuggyな練習問題を仕様通りに動作させてみた
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 情報の授業でやったbuggyな練習問題を仕様通りに動作させてみた | |
/* | |
* ==仕様== | |
* | |
* 1.整数の値tを入力する | |
* 2.それが0-11の範囲なら「おはよう」、12なら「正午」、13-17なら「こんにちは」、18-23なら「こんばんは」、それ以外なら「範囲外」と出力 | |
*/ | |
// 問題のコード(あまりにも汚いインデントだったので整形済み) | |
// | |
// #include <iostream> | |
// | |
// int main() { | |
// int t; | |
// std::cin >> t; | |
// | |
// if (t /*(1)*/ 11) { | |
// std::cout << "おはよう"; | |
// } else if (t == 12) { | |
// std::cout << "正午"; | |
// } else if (t <= 17) { | |
// std::cout << "こんにちは"; | |
// } else if (t <= 23) { | |
// std::cout << "こんばんは"; | |
// } else { | |
// std::cout << "範囲外"; | |
// } | |
// | |
// return 0; | |
// } | |
// この「/*(1)*/」の部分を埋めろ、という感じの問題 | |
// しかし、単純に「<=」と書くと、tが0未満の時にも「おはよう」と出力され、仕様通りにならない | |
// (授業ではそれでいいとされた) | |
// というわけで、これを仕様通り動作させてみた | |
#include <iostream> | |
int main() { | |
int t; | |
std::cin >> t; | |
if (t < 0 && !(t = 24) || t <= 11) { | |
std::cout << "おはよう"; | |
} else if (t == 12) { | |
std::cout << "正午"; | |
} else if (t <= 17) { | |
std::cout << "こんにちは"; | |
} else if (t <= 23) { | |
std::cout << "こんばんは"; | |
} else { | |
std::cout << "範囲外"; | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
しかし、それだと負の値の場合に「こんにちは」が出力されてしまうのです