- 締切済み
数値の比較演算について
int x = 0; if(x >= 0 && x <= 1) { x = 'a'; } if(x >= 2 && x <= 3) { x = 'b'; } 以下ある程度同様のif分岐 ※自作プログラムより一部抜粋及び改変 C言語を始めたばかりなのですが上記のようなif分岐を行い、%cでxを表示するのですが、xの値が0にもかかわらず、aではなく別の記号が表示されてしまいます。 自分では直前にprintfでxの値が変わっていないか確認し、%dでどのような数値になっているかも確認しました。 どこが悪いのか直接的な答えでなくとも、ヒントだけでも構いませんのでご教示していただけないでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.1
> xの値が0にもかかわらず、aではなく別の記号が表示されてしまいます。 再現できませんでした。 #include <stdio.h> int main() { int x = 0; if(x >= 0 && x <= 1) { x = 'a'; } if(x >= 2 && x <= 3) { x = 'b'; } printf("x = %d('%c')\n", x, x); return 0; } 実行結果: x = 97('a')
補足
確認ありがとうございます。 表示する文字にaやbだけでなく半角スペースがあり、どうやらそれが原因みたいなのですが、半角スペースを文字として表示させるにはどうしたらよいでしょうか?