c 交換兩個乘數的位置,計算結果取兩位小數後為什麼不同

時間 2022-03-08 15:15:05

1樓:匿名使用者

可以在輸出的時候限制小數點位數。

當輸出單精度浮點型float變數f時,可以用printf("%.2f", f);

來使輸出結果保留兩位有效數字。其中.2就是代表保留兩位,如果要保留三位就是%.3f。用%.0f就是隻輸出整數。

如果是雙精度浮點數double,就需要用%.2lf來使輸出結果保留2位小數。

2樓:

浮點數在記憶體中都是近似表達的。m和n是兩個不同表示式計算出來的,所以近似精度並不一致,所以不能認為6.3*12和84*0.

9在記憶體中的表達是完全相等的。m和n手動算出來都是71.915,但記憶體中的表達上n的那個最後的5可能是比5還多一點被「四舍」得到的,而m的那個5可能是...

49999999999...「五入」得到的,那麼在**由setprecision(2)限制2位小數時n由於小數第三位是5就被入到第二位得2了,而m由於第三位是4而被捨棄沒有入到第二位。浮點數的這種「怪事」多得很,類似0.

0001加100次卻可能得不到0.01是常見的,所以完全沒有必要糾結這事。這也提醒我們在程式設計中遇到浮點數比較時不能用==簡單了事,要另想辦法,否則就可能會造成錯誤……供參考。

用c++程式設計:交換兩個數的值是多少?

3樓:匿名使用者

嘿嘿 來個最簡單的:直接交換,不借助中間變數#include

using namespace std;

int main()

c++如何保留兩位小數

4樓:二次元速遞

cout<

然後再輸出實數型別變數即可以保留2位小數輸出了,當然你要保留三位小數,setprecision(3)就行。

setprecision是指設定輸出精度,當沒有

cout<時,輸出格式是資料的有效位數,例如

float a = 123.666;

cout<將輸出123.67(注意這裡,它會四捨五入)。

拓展資料

c++是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。

c++擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c++就適應的問題規模而論,大小由之。

c++不僅擁有計算機高效執行的實用性特徵,同時還致力於提高大規模程式的程式設計質量與程式設計語言的問題描述能力。[2]

5樓:banji的老巢

用c語言的方法:

輸入printf("%5.2f",a),其中5表示寬度,2就是精度,即保留兩位小數。

2.設定小數位數法:

cout

c++不僅擁有計算機高效執行的實用性特徵,同時還致力於提高大規模程式的程式設計質量與程式設計語言的問題描述能力。

6樓:風若遠去何人留

有兩種方法可以做到保留兩位小數。

1 使用cout輸出。

cout是c++的標準輸出流,在iomanip標頭檔案中有對其進行格式操作的函式。

其中setiosflags(ios::fixed)可以設定以浮點數形式輸出,setprecision函式可以設定精度。

於是保留兩位小數輸出的程式可以寫成:

#include

#include

using namespace std;

int main()

以上兩個示例程式均輸出:

1.54

7樓:匿名使用者

%8.2s 8表示這個數總共有幾位,2表示保留倆位小數。

8樓:匿名使用者

輸出的話%s+ 你要的位數。這東西只有要求高精度沒有要低的理由。

9樓:匿名使用者

#includeint main()

10樓:

printf("%.2f\n",ans); //這是float型

printf("%.2lf\n",ans); //這是double型

歡迎採納o(* ̄︶ ̄*)o

c++交換兩個數的值**

11樓:金色潛鳥

猜測,可能是:

swap(&x,&y);這句 呼叫你寫的函式。

swap(x,y);這句 呼叫系統裡的同名函式。

你可以在你寫的函式里加一句 cout << "my function" <

呼叫 swap(x,y); 將不會顯示 "my function"。

呼叫 swap(&x,&y); 會顯示 "my function"。

c++ 允許定義同名而引數不同的函式。swap(x,y); 是引數引用。

在c++裡面,如果兩個指標互換地址,那麼兩個指標的指向的值互換嗎?

12樓:

首先說明一點,任意物件的地址有天然的常量屬性,是不可能互換的比如:int a,b;

int* pi;

pi=&a;

&a=&b; //這個是不行的,&a是個const&b=pi; //&b也是個const

而c++有引用,用引用可以雙向傳遞了:

13樓:ru惡魔獵手

指標互換,兩個指標指向的地址中的值不變。

舉個例子指標a指向地址0x10,0x10中存了個字元『q』;

指標b指向地址0x11,0x11中存了個字元『w』;

交換後,指標a指向地址0x11,指標b指向地址0x10。

所以通過指標讀取的時候看似是交換了,但是實質上來說值沒有變。

c++中除法的問題

14樓:紫竹依山

除法是基本運算,規則如下,如果兩個運算元中有一個為浮點型,則結果為浮點,如果兩個均為整型,則為整除。當整型取浮點時就要強制轉換(float)或者(double)

例如:int a = 5;

int b = 2;

則a/b的值為2(整除),而用(double)a/b的值則為2.5,用個強制型別轉換(double)就行了。

15樓:匿名使用者

1、將1或2兩個數字中的任何一個改為浮點型,如果兩個運算元中有一個為浮點型,則結果為0.5。如下所示

int a = 1.0;

int b = 2;

則a/b的值為0.5。

2、強制轉換(float)或者(double),其結果為0.5。如下所示

int a = 5;

int b = 2;

則a/b的值為2(整除),而用(double)a/b的值則為2.5。

1、c++中的算術運算子包括基本的算術運算子和自增、自減運算子。由算術運算子、運算元和括號構成的表示式稱為算術表示式。

2、基本算術運算子有:+(加)、-(減或負號)、*(乘)、/(除)、%(取餘)。其中「-」作為負號時為一元運算子,其餘都為二元運算子。

這些基本算術運算子的意義與數學中相應符號的意義是一致的。它們之間的相對優先順序關係與數學中的也是一致的,即先乘除、後加減,同級運算自左向右進行。使用算術運算子要注意以下幾點:

(1)「%」是取餘運算,只能用於整型運算元。表示式a%b的結果為a/b的餘數。 「%」的優先順序與「/」相同。

(2)當「/」用於兩整型運算元相除時,其結果取商的整數部分,小數部分被自動捨棄。因此,表示式1/2的結果為0,這一點需要特別注意。

(3)c++中的「++」 (自增)、 「--」 (自減)運算子是使用方便且效率很高的兩個運算子,它們都是一元運算子。這兩個運算子都有前置和後置兩種使用形式.

16樓:奮鬥的曦

用個強制型別轉換(double)。

除法是基本運算,規則如下,如果兩個運算元中有一個為浮點型,則結果為浮點,如果兩個均為整型,則為整除。當整型取浮點時就要強制轉換(float)或者(double),例如:int a = 5、int b = 2,則a/b的值為2(整除),而用(double)a/b的值則為2.

5,用個強制型別轉換(double),1/2就可得到0.5了。

拓展資料:當運算元的型別不同,而且不屬於基本資料型別時,經常需要將運算元轉化為所需要的型別,這個過程即為強制型別轉換。強制型別轉換具有兩種形式:

顯式強制轉換和隱式強制型別轉換。

17樓:匿名使用者

1、定義一個浮點型變數

2、1除以2中必須有一個是不數的,如可以這樣1.0/2這樣就能得到結果了

18樓:匿名使用者

#include

int main(void)

/*執行結果:0.5*/

19樓:匿名使用者

(float)x=1/2

c++中%和/的區別!!

20樓:匿名使用者

c++中 . 和 -> 主要是用法上的不同。

1、a.b則a為物件或者結構體;

2、a->b則a為指標,->是成員提取,a->b是提取a中的成員b,a只能是指向類、結構、聯合的指標;

例如:class student

public:

string name[20];

第一種情況,採用指標訪問 student *xy,則訪問時需要寫成 *xy.name="hhhhh";等價於xy->name="hhhhh"。

第二種情況,採用普通成員訪問 student xy,則訪問時需要寫成 xy.name="hhhhh"。

擴充套件資料

算術運算子與算術表示式

c++中的算術運算子包括基本的算術運算子和自增、自減運算子。由算術運算子、運算元和括號構成的表示式稱為算術表示式。

基本算術運算子有:+(加)、-(減或負號)、*(乘)、/(除)、%(取餘)。其中「-」作為負號時為一元運算子,其餘都為二元運算子。

這些基本算術運算子的意義與數學中相應符號的意義是一致的。它們之間的相對優先順序關係與數學中的也是一致的,即先乘除、後加減,同級運算自左向右進行。

21樓:雲南新華電腦學校

%是除法取餘運算。

用於整數與整數運算。否則,不同的編譯器會得不同結果。

'%'為取餘運算子,用於把它前面的整數值或表示式除以其後面的整數值或表示式,結果為不能被後面的整數或表示式整除的最小整數,它後面的數值應該為大於1的正整數。如表中所示的"13%7",就表示13 除以7餘6。

作為雙目運算子,左右運算元可以是數值,也可以是表示式。

但'%'運算子的左右運算元必須是整數。

負數取餘運算ms vc++ 編譯器:

-4 % 6 = -4

6 % -4 = 2

/是除法運算

程式中的除法有考慮

比如1/2 這個是整數除法,結果不是0.5, 而是0,即取了整數部分

1.0/2 這個才是0.5

如果想得到一個浮點數的結果,就要考慮讓兩個運算元至少有一個是浮點數,強行乘一個1.0也是一個辦法

22樓:

% 取餘運算子 運算結果是除數與被除數的餘數,例 10 % 4 = 2

/ 整除運算子 10 / 5 = 2

23樓:匿名使用者

求摸就是說求的是你所除了的餘數,商的話一般來說都是整數,你要全部輸出就利用格式控制如:%f,這個是輸出六位有效數字;%-f就是向左靠齊;%.2f就是保留兩位有效的小數,就是小數點後兩位,總的來說看你需要保留的小數的位數.

24樓:匿名使用者

如果要輸出2.5只要改為5.0/2或5/2.0或5.0/2.0就行了

不信你可以試試哦

也就是說只要把其中一個該為浮點數就行了

C ,函式內交換兩個指標的指向,求助

void exchge int p1,int p2 改成這樣就可以了。腦袋裡要有個記憶體的概念。int tmp p1 p1 p2 p2 tmp 只是交換了區域性變數p1 p2的值。這樣的交換不起作用,因為子函式。裡面。你把傳過去的指標交換了一下,但是它的指向沒有改變,因此你輸出的時候,不會改變。因此...

excel結果怎麼等於兩個計算式相加

能德文廖醜 在用visual basic編輯器中插入一個模組,然後在模組中貼上下面的函式。假設水平量和豎直量分別在b c兩列,資料從第2行開始,用公式 總量 b2 c2 計算即可。function 總量 range asrange dimn,sumdim r,c,ur,uc,i,uiur range...

輸入兩個整數,交換後輸出 c語言怎麼程式設計

香料魔法 利用c語言來實現交換兩個變數的值,需要定義三個變數 include int main int x,y,temp 定義三個變數printf 請輸入分別x和y的值 n scanf d d x,y 終端輸入變數x ytemp y 把y賦值給temp y x 把x賦值給y x temp 把y賦值給...