推 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?
: 非常感謝回答!