伊莉討論區
標題:
函數和abs的問題
[打印本頁]
作者:
cynthialar
時間:
2010-1-28 09:51 AM
標題:
函數和abs的問題
本帖最後由 cynthialar 於 2010-2-2 11:53 AM 編輯
我想問一下abs不是絕對值得關係嗎?
那麼以下程式,是否可以幫我解答一下呢?
#include <iostream>
using namespace std;
int abs(int a);
float abs(float a);
double abs(double a);
int main()
{
int a = -5, b = 3;
float c = -2.4f, d = 8.4f;
double e = -3e-9, f = 3e6;
cout << "a= " << abs(a) << endl << "b= " << abs(b) << endl;
cout << "c= " << abs(c) << endl << "d= " << abs(d) << endl;
cout << "e= " << abs(e) << endl << "f= " << abs(f) << endl;
system("pause");
return 0;
}
int abs(int a)
{
cout << "int abs" << endl;
return (a > 0?a:-a);
}
float abs(float a)
{
cout << "float abs" << endl;
return (a > 0?a:-a);
}
double abs(double a)
{
cout << "double abs" << endl;
return (a > 0?a:-a);
}
複製代碼
顯示結果""應""為:
int abs
int abs
a=5
b=3
float abs
float abs
c=2.4
d=8.4
double abs
double abs
e=3e-009
f=3e+006
---------------------------------------------------------
此段程式,我照著書上面打,但是我顯示的結果為:
---------------------------------------------------------
a=5
b=3
float abs
float abs
c=2.4
d=8.4
double abs
double abs
e=3e-009
f=3e+006
---------------------------------------------------------
為什麼會少了前面兩行呢?
還有,在float的部份,為什麼宣告c=-2.4f和d=8.4f之後顯示的結果卻沒有"" f ""的存在?那麼這個"" f ""不就沒有用處了嗎?
在double的部份就更難理解了,為什麼宣告e=-3e-9和f=3e6之後顯示結果卻是"" e=3e-009 ""和"" f=3e+006 ""?
e不是代表一個""字""嗎?為什麼是表示""10""的幾次方呢?
作者:
whymejake
時間:
2010-1-28 02:25 PM
C 跟 D 的宣告後面的 f 代表這是 float point 值,不是數值的一部分,所以不會印出來
而 Double 的宣告與顯示
e = -3* 10^(-9) 所以 ABS(E) = 3*10^(-9)
f = 3*10^(6) 所以 ABS(F) = 3*10^(6)
你可能要先搞清楚 float , double 的宣告跟科學記號的寫法
作者:
cynthialar
時間:
2010-1-28 05:46 PM
那為什麼e=3e-9是3e-009~
而f=3e6是等於3e+006~
卻不是f=3e+6等於3e+006呢?!~
回復
2#
whymejake
作者:
hst326
時間:
2010-1-28 06:40 PM
提示:
作者被禁止或刪除 內容自動屏蔽
歡迎光臨 伊莉討論區 (http://a401.file-static.com/)
Powered by Discuz!