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

伊莉討論區

搜索
尊貴會員無限看帖不用回覆認識好友、聊天,分享生活趣事安全提問(回答) 和 永久尊貴會員 事宜
火影忍者三上明日花人妖名偵探柯gekkbox
sdmtmeyd 812旅行ラブesエelinsora 551(gvg 800

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

[繁]魔法光源股份有限

[繁]被逐出隊伍的治癒

[繁]再見龍生,你好人

[繁]魔法光源股份有限

[超清繁中]霹靂英雄戰

[繁]香格里拉・開拓異
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 1387|回復: 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
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

Rank: 2Rank: 2

帖子
1
積分
641 點
潛水值
11390 米
頭香
發表於 2010-1-28 02:25 PM|只看該作者
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
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 這都是一樣的,
不清楚就拿小算盤來自己按按看就懂了
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

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

Powered by Discuz!

© Comsenz Inc.

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