質問: int main(void) { char moji; scanf("%c", &moji); if (moji >='a') { printf("alice\n"); printf("%c\n", moji); } else if (moji >='b'){ printf("bob\n"); printf("%c\n", moji); }else if (moji >='c') { printf("chris\n"); printf("%c\n", moji); }else{ printf("other\n"); printf("%c\n", moji); } return 0; } これをすると、どの文字を打ってもaliceと表示されます。 どうしたらいいでしょうか
回答: if (moji >='a')の、「>=」の部分を「==」にすれば良いと思います。(それ以下も同様に) ASCIIコードでは、 'a'の内部数値は'0x61'であり、'b'は'0x62'です。 「>=」で比較すると'a'以上の文字をすべて含んでしまいます。