score的數值范圍對結果有何影響?為什么?
#include <stdio.h>
int main()
{
??? int score = 9;
??? //完善一下代碼
??? if (score >= 10000)
??? {
??????? printf("鉆石玩家");
??? }
??? else if (score >= 5000 && score < 10000)
??? {
??????? printf("白金玩家");?? ?
??? }
??? else if (score >= 1000 && score < 5000)
??? {
??????? printf("青銅玩家");??? ?
??? }
??? else
??? {
??????? printf("普通玩家");?? ?
??? }
??? return 0;
}
int?的范圍不是-2^13到2^13-1嗎?
為什么當score取值90000000000(9*10^10)輸出結果為普通玩家?
為什么當score取值99999999999輸出結果卻為白金玩家?
為什么當score取值999999999999999輸出結果為普通玩家?
2015-10-19
我看了一下,這臺機器 ? int 取值范圍是 : -2147483648~ 2147483647。當你給的值是? 2147483648 時,會變成負數 -2147483648,再繼續加1 又能逐漸變成整數,達到 2147483647時 又會變成 負數-2147483648。你拿你付的這幾個值來算算看。
2015-10-09
這個是編譯器自動改變了其值,你用GCC編譯器試試看,在linux下面
2015-10-08
你代碼里面沒有取值???score就是9啊