c語言疑問之三

int abs(int);

int main(void)

{

int i;

printf(\"Input an integer:\");

scanf(\"%d\",&i);

printf(\"abs(%d)=%d\\n\",i,abs(i));

system(\"pause\");

return 0;

}

int abs(int n)

{

if (n<0)

return -n;

else

return n;

}

這是一個絕對值的程式想請教一下

if (n<0)

return -n;

當傳回-n的值回去的時候 為何printf(\"abs(%d)=%d\\n\",i,abs(i)); 這程式結果會只顯示正而不會顯示負?

3 個解答

評分
  • 匿名使用者
    1 0 年前
    最佳解答

    因為你前面有用if作判斷,當n<0時傳回-n,-n也就是-1*n,

    那你的n<0,乘上負號後當然是正的阿。

    參考資料: 我的腦
  • SiYu
    Lv 5
    1 0 年前

    跟據實驗結果會顯示阿.

  • 1 0 年前

    這就是您程式的目的啊!當 N小於0,-N 就會大於0, ok?

還有問題?馬上發問,尋求解答。