我試圖做一個程序,顯示在C短短的int溢出。在我的程序中,輸入兩個短整型,然後我添加它們。如果加法優於32767,我們有負溢出,如果加法低於-32678,我們有一個正溢出。溢出語言C中的短整數
現在我的問題是,當使用if
時,我的程序拒絕尊重任何條件。但是當我使用do while
我的程序認爲我同時尊重這兩個條件。
short int n1, n2, somme;
printf("Enter the first number: ");
scanf("%hi", &n1);
printf("enter the second number : ");
scanf("%hi", &n2);
somme= n1 + n2;
do
{
printf("negative overflow\n");
}while (somme>32767);
do
{
printf("negative overflow\n");
}while (somme<-32768);
printf("the result is %hi", somme);
對不起,我的英語。並感謝閱讀,請幫助。
你是不是要用'if'而不是'do ... while'? –
你知道'做什麼'的作品嗎?這不是「if」的替代。即使條件不滿足,塊中的代碼也會執行一次。所以「但是當我使用程序時,我認爲我同時尊重這兩個條件」,這是錯誤的。你的程序在邏輯上不正確。 –
我嘗試過「如果」但它不起作用。 –