2014-10-10 87 views
-1
int main(){ 

    int x; 
    cout<<"enter a number: "; 
    cin>>x; 
    cout<<endl; 
    odd(x); 


    return 0; 
} 

void odd(int a){ 

if(a%2 != 0){ 

    cout<<"the number is odd : "<< '(' +a+ ')'; 

    }else{ 

    even(a); 

    } 
} 

我執行上述計劃,我得到不同的輸出:爲什麼我在C++中獲得不同的輸出?

enter a number: 15 

the number is odd : 96 

這究竟是爲什麼?

感謝

+1

C++沒有字符串連接,它*絕對*不像其他語言那樣具有數字到字符串的轉換。 @ MikolajMularczyk的回答是正確的。 – Qix 2014-10-10 19:55:44

回答

12

試試這個:cout<<"the number is odd : "<< '('<< a << ')';

「(」和「)」的ASCII值有40和41它們被晉升爲int和你添加它們,這就是爲什麼你的輸出是96( 40 + 15 + 41 == 96)。

+0

這清除了我的懷疑。謝謝@MikolajMularczyk。 – hamid 2014-10-10 20:16:39

相關問題