Code Fix

中級符号ありと符号なしの比較で -1 が巨大な数として扱われる › パターン2

符号ありと符号なしの比較で -1 が巨大な数として扱われる

int型とunsigned int型を比較すると、int型の値は自動的にunsigned intへ変換されます。

 1  #include <stdio.h>
 2  
 3  int main(void) {
 4      int score = -5;
 5      unsigned int passLine = 3;
 6      if (______________________________) {
                           ^
 7          printf("fail\n");
 8      } else {
 9          printf("pass\n");
10      }
11      return 0;
12  }
出力: pass期待: fail

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

符号ありと符号なしの比較で -1 が巨大な数として扱われる

負の数は非常に大きな正の数として扱われ、直感に反する比較結果になります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)