精華區beta C_and_CPP 關於我們 聯絡資訊
給定下面的程式碼: #include <iostream> using namespace std; int main(int argc, char* argv[]) { int i; // i = ?? 會輸出 True if (i != !!i) { cout << "True\n"; } else { cout << "False\n"; } return 0; } 問題在於i要設成多少才會印出True? 非常感謝回答! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 98.169.79.171
kanandg1:負數 -1 != !!(-1) == 1 這樣? 09/03 06:58
cutecpu: i 設成不要是 0 和 1 , 應該都會印出 True , 不知道對嗎 09/03 07:51
sjgau:同意二樓,+1 09/03 07:55
kanandg1:同意二樓 09/03 08:43
VictorTom:這題有陷井XD 09/03 09:28
lungswu:iinitial,他的值可能會是300, i != !!i 會是如何? 09/03 10:40
lungswu:^^^^^^^^^ <--是說i沒有initial (sorry,打錯) 09/03 10:42
sjgau:init. 不是問題,他使用註解問你,i= ???, 會得到 true 09/03 10:49
sjgau:這題是考你,!n 的結果,不是 0, 就是 1, !! 負負得正 09/03 10:50
lungswu:對齁....沒看清楚問題,以為題目有瑕疵 09/03 11:54
> -------------------------------------------------------------------------- < 作者: sjgau (sjgau) 看板: C_and_CPP 標題: Re: [問題] 一個面試問題 時間: Thu Sep 3 11:54:42 2009 i= 0, or 1 get False, i= others, get True #if 0 i= -10, True i= -9, True i= -8, True i= -7, True i= -6, True i= -5, True i= -4, True i= -3, True i= -2, True i= -1, True i= 0, False i= 1, False i= 2, True i= 3, True i= 4, True i= 5, True i= 6, True i= 7, True i= 8, True i= 9, True i= 10, True Press any key to continue #endif // ---------------------------------------------- #include <iostream> using namespace std; int main(int argc, char* argv[]) { int i; for (i=-10;i<=10;i++) { printf("i= %5d, ", i); if (i != !!i) { cout << "True\n"; } else { cout << "False\n"; } } return 0; } ※ 引述《handpower (衝衝衝)》之銘言: : 給定下面的程式碼: : #include <iostream> : using namespace std; : int main(int argc, char* argv[]) : { : int i; : // i = ?? 會輸出 True : if (i != !!i) : { : cout << "True\n"; : } : else : { : cout << "False\n"; : } : return 0; : } : 問題在於i要設成多少才會印出True? : 非常感謝回答!