c語言中小數部分是怎麼相加的,怎麼用c語言求乙個陣列中所有數的整數部分和及小數部分和?

時間 2021-08-11 17:18:36

1樓:匿名使用者

1.c語言的小數都是浮點數。浮點數屬於floating binary point types,也就是說都double型的數值在相加減的時候,會將數值轉換成二進位制的數值如10001.

10010110011這種表示發再做相加減,但是在轉換成二進位制**表示的時候,儲存小數部分的位數會有不夠的現象,即無限迴圈小數,這就就會造成小數相加後結果會有微差距。

2.浮點數是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由乙個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學計數法。

3.浮點計算是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或捨入。

乙個浮點數a由兩個數m和e來表示:a = m × b^e。在任意乙個這樣的系統中,我們選擇乙個基數b(記數系統的基)和精度p(即使用多少位來儲存)。

m(即尾數)是形如±d.ddd...ddd的p位數(每一位是乙個介於0到b-1之間的整數,包括0和b-1)。

如果m的第一位是非0整數,m稱作規格化的。有一些描述使用乙個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。

2樓:匿名使用者

x=111111.111;x=222222.222;

為x連續兩次賦值,y值未知。

改為如下:

x=111111.111;

y=222222.222;

3樓:匿名使用者

你把float改為double,把%f改為%lf試一下

4樓:匿名使用者

用double來設x,y

輸出%f

5樓:網際網路開發筆記

x兩次賦值應該是筆誤吧?

這個問題問的好,只是我也不知道怎麼回事,聽別人說這是與計算機組成原理相關,具體的不知道了。我覺得這應該是和浮點計算器有關,因為浮點計算器是乙個高效的計算器,至於高效在什麼地方,可能要有些取捨吧。

6樓:外星人的使用者名稱

你的x寫成y了,但我改正後。測試了很多,發現float型只能接收7位有效數字,而且小數字為三位才能執行正確,我看看書也沒找到很要說服力的答案,希望你知道了,告訴我,我也多喳喳資料吧!一起交流共同進步。。

怎麼用c語言求乙個陣列中所有數的整數部分和及小數部分和?

7樓:會飛的小兔子

#include

voidmain()

doubles;

inta;

doubleb;

printf("pleaseinputadoublenumber:");

scanf("%lf",&s);

a=(int)s;

b=s-a;

printf("ln%d%lf",a,b);

擴充套件資料c語言求100內素數:

#include

usingnamespace std;

int main()

if(prime==true)

cout

8樓:風若遠去何人留

對於任意的浮點數f, c語言規定,將其強制轉換為整型時,(int)f就是其整數部分的值。

根據這個,可以知道小數部分就是f - (int)f。

不過,要求整數部分和小數部分和,可以有更簡單的思路,不需要求每個數的小數部分,而是求得所有數的整數部分和後,用所有數的和減去整數部分和,也就是小數部分和了。這樣可以精簡**,提高效率。

演算法流程如下:

1 定義兩個統計變數,儲存整數和以及所有數的和,初始化為0;

2 遍歷陣列,求每個數的整數部分,並累加到整數和。

3 同步計算每個數的和;

4 遍歷結束後,結果相減就是小數和;

5 輸出結果。

float a[10];

int s_int = 0;

float s_float = 0;

int i;

for(i = 0 ;i <輸入10個數for(i = 0; i < 10; i ++)s_float -= s_int; //得到小數部分和。

printf("整數部分和為 %d, 小數部分和為%f\n", s_int, s_float);//輸出。

9樓:匿名使用者

int a[100],i;定義陣列

int sum1=0;儲存整數和

float sum2=0.0;儲存小數和

for(i=0;i<100;i++)}

10樓:匿名使用者

演算法思想:每乙個數除以一的商是整數部分,餘數是小數部分。

大概程式如下(未進行除錯)

void main()}

11樓:匿名使用者

/* hello.c -- hello, world */#include "stdio.h"

#include "conio.h"

#define max 5

main()

;int i,j,sum=0;

for(i=0;i

printf("%d %f",sum,a);

getch();}

c語言中乙個數的小數如何表示

12樓:匿名使用者

4.2用c語言表示:double d = 4.2。c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

1、float:

float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點型別的單精度值具有 4 個位元組,包括乙個符號位、乙個 8 位 excess-127 二進位制指數和乙個 23 位尾數。

2、double:

double(雙精度浮點數)使用 64 位(8位元組) 來儲存乙個浮點數。 它可以表示十進位制的15或16位有效數字。

擴充套件資料

(1) 浮點型與整型

將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:

賦值時的型別轉換實際上是強制的。

(2) 單、雙精度浮點型

由於c語言中的浮點值總是用雙精度表示的,所以float 型資料只是在尾部加0延長為double型資料參加運算,然後直接賦值。double型資料轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。

13樓:blackpink_羅捷

兩種表示

方式:1、定點表示:必須有小數點。

例如:0.123, .123, 123.0。

2、指數表示:e或e之前必須有數字,指數必須為整數。

例如:12.3e3 ,123e2, 1.23e4。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

定點小數是純小數,約定的小數點位置在符號位之後、有效數值部分最高位之前。若資料x的形式為x=x0.x1x2…xn(其中x0為符號位,x1~xn是數值的有效部分,也稱為尾數,x1為最高有效位),則在計算機中的表示形式為:

一般說來,如果最末位xn= 1,前面各位都為0,則數的絕對值最小,即|x|min= 2^(-n)。如果各位均為1,則數的絕對值最大,即|x|max=1-2^(-n)。所以定點小數的表示範圍是:

2^(-n)≤|x|≤1 -2^(-n)。

擴充套件資料

由於「編碼總位數為8」的限制,真值-128無法用原碼、反碼來表示,似乎不能用上述規則來求解補碼,但實際上是可行的——只要不管它的最高位即可,操作辦法如下:

將128化為二進位制為:1 0000000,最高位為1,可以只對捨去最高位後剩餘的7位進行處理即可,首先取反得:1111111,加1得:

1 0000000,最高位有進製需丟棄,即得:0000000,加上符號位就得補碼:1 0000000。

又如,當編碼總位數為4時,真值x=+0.101的原碼、反碼、補碼均為:0 101。

真值x=-0.101的原碼、反碼、補碼依次為:1 101、1 010、1 011。

同理,特例,-1的補碼為:1 000。

在定點小數中,小數點隱含在第一位編碼和第二位編碼之間

定點小數,是指小數點準確固定在資料某個位置上的小數,從實用角度看,都把小數點固定在最高資料位的左邊,小數點前邊再設一位符號位。按此規則,任何乙個小數都可以被寫成 :n = ns .

n-1 n-2 … n-m。

14樓:

我想你的意思是這樣的,a變數為浮點型資料(4.2),想得知其小數部分。

不知道是不是呢?

如果是的話,那麼:

float b = a-(int)(a);

15樓:匿名使用者

c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

c語言中浮點數常量有兩種表示方式:

1、定點表示:(必須有小數點) 如:0.123, .123, 123.0。

2、指數表示:(e或e之前必須有數字,指數必須為整數)如:12.3e3 ,123e2, 1.23e4。

錯誤的寫法:e-5 ,1.2e-3.5,e3。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,請在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

float f1 = 1.1f; //小寫f

float f2 = 1.1f; //大寫f

double d = 1.1; //double型別

16樓:中國中醫拔罐器

好像有什麼函式吧。

不過一般的思路都是。

double d=4.2;

double m;

m=d-int(d);

printf("m=%0.1f",m ) //要幾位就零點幾位。

c語言中保留兩位小數如何寫,c語言中怎麼保留小數2位

姬覓晴 2 接著我們儲存main.c檔案。3 這個時候我們把內容輸出,設定浮點型。也就是 f。4 但是輸出的時候預設有多位小數。5 於是我們可以設定 2f,也就是兩位數,因為我們寫了2。6 這個時候執行 的時候就會看到只有兩位小數了。 幸運的小李菲刀 輸出時?2f 即可指定輸出兩位小數 例題 356...

C語言中怎麼計算x,y的值,c語言中(x,y)中怎麼計算

int x,y 定義的時候如果不初始化,不同的環境會初始化不同的值,有的是0,有的不是,你的這個程式,x的結果是不定的,同時,有些環境下除錯也會報錯! 此處無名勝有名 c語言的賦值語句是從右到左執行的,比如 x y 1 意思就是 把y 加1後賦值給x但c語言的語序是從上到下執行的 本題中,當執行in...

c語言中switch怎麼用,C語言中的SWITCH是什麼意思?

兔丞飛 簡單的說switch語句也是屬於判斷語句,if else語句適合3個以內的判斷,但是多了用if就不太方便了,所以這時3個以上的判斷用switch語句就比較方便了,結構就像樓上的兄弟們那樣寫的,大概怎麼用我舉個例子你就懂了。例 判斷一週的食譜,就是星期幾的食譜是什麼,首先一個星期7天,那麼判斷...