找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
發表文章前請先閱讀相關版規搞笑、娛樂、精彩的影片讓你看你準備好成為出色的版主了嗎?
無修cosplay出包王女名偵探柯中出gd無碼 ge
abf 084mgfresh womisamo詩ちゃん來生緣waaa 437

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]香格里拉・開拓異

[簡]神之塔 第二季16-

[繁]Acro Trip 頂尖惡

2025年1月新番『S級怪

[繁]機械臂04-

[繁]再見龍生,你好人
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 1388|回復: 3
打印上一主題下一主題

[問題]函數和abs的問題[複製鏈接]

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
1178
積分
7656 點
潛水值
45823 米
跳轉到指定樓層
樓主
發表於 2010-1-28 09:51 AM|只看該作者|倒序瀏覽
本帖最後由 cynthialar 於 2010-2-2 11:53 AM 編輯

我想問一下abs不是絕對值得關係嗎?
那麼以下程式,是否可以幫我解答一下呢?
  1. #include <iostream>
  2. using namespace std;
  3. int abs(int a);
  4. float abs(float a);
  5. double abs(double a);
  6. int main()
  7. {
  8.     int a = -5, b = 3;
  9.     float c = -2.4f, d = 8.4f;
  10.     double e = -3e-9, f = 3e6;
  11.     cout << "a= " << abs(a) << endl << "b= " << abs(b) << endl;
  12.     cout << "c= " << abs(c) << endl << "d= " << abs(d) << endl;
  13.     cout << "e= " << abs(e) << endl << "f= " << abs(f) << endl;
  14.     system("pause");
  15.     return 0;
  16. }
  17. int abs(int a)
  18. {
  19.     cout << "int abs" << endl;
  20.     return (a > 0?a:-a);
  21. }
  22. float abs(float a)
  23. {
  24.       cout << "float abs" << endl;
  25.       return (a > 0?a:-a);
  26. }
  27. double abs(double a)
  28. {
  29.        cout << "double abs" << endl;
  30.        return (a > 0?a:-a);
  31. }
複製代碼

顯示結果""應""為:
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""的幾次方呢?...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

Rank: 2Rank: 2

帖子
1
積分
641 點
潛水值
11390 米
頭香
發表於 2010-1-28 02:25 PM|只看該作者
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
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 的宣告跟科學記號的寫法
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
1178
積分
7656 點
潛水值
45823 米
3
發表於 2010-1-28 05:46 PM|只看該作者
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
那為什麼e=3e-9是3e-009~
而f=3e6是等於3e+006~
卻不是f=3e+6等於3e+006呢?!~



回復
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
whymejake

使用道具檢舉

hst326 該用戶已被刪除
4
發表於 2010-1-28 06:40 PM|只看該作者
回復
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
cynthialar


這跟程式沒啥關係了...,
就跟whymejake說的一樣,
你應該先去知道科學記號的表示法。

f = 3e6 = 3e+006 = 3e+6 這都是一樣的,
不清楚就拿小算盤來自己按按看就懂了
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部