C語言浮點型資料能不能取餘,C語言中,一個整型對一個浮點型取餘是怎樣運算的?

2022-05-20 02:10:28 字數 2830 閱讀 6076

1樓:稅鶯韻楚好

可以,但不能用操作符%,而要用庫函式fmodf、fmod或fmodl。因為%是整型取餘操作符,要求兩邊都是整型數才行,結果也是整型;fmodf用於float型變數操作,fmod用於double型變數操作,fmodl用於long

double型變數操作。以下以fmod舉例:

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

#include "math.h"

int main(void)執行結果是1.100000。

2樓:環聽安喻大

可以相除,計算機先將整型變數值的型別自動轉換為浮點型(但是整型變數本身的資料型別和值並不改變),之後進行浮點數的運算。

舉例如下:

int a1=4, a2;

float b1 = 5.2, b2;

a2 = b1/a1; // 運算結果為1,因為a2為int型別,所以將5.2/4=1.3的結果轉換為int型,即捨去小數部分

b2 = b1/a1; // 運算結果為1.3,因為b2為float型別,可以表示小數,所以將5.2/4=1.3的結果直接賦值給變數b2

c語言中,一個整型對一個浮點型取餘是怎樣運算的?

3樓:匿名使用者

首先說說明下,取餘運算是能是2個整數來運算。在表示式中同優先順序的運算子是從左往右依次運算的,就像你這個7%1/2最終是等於0,7%2/4剛等於0

4樓:湛藍水晶

你舉的例子不是整型對浮點做%.

7%1/2等價於 (7%1)/2 = 0/2 = 0;

如果是想問 7%0.5,那是編譯錯誤,%操作符不能用於浮點數

5樓:

不是對浮點型取餘,7%1/2是先執行7%1然後執行0/2

6樓:淺夏微涼耶

c語言中,取餘要求是整型對整型的操作

7樓:紅夏蘭忻民

不是,如果均為整型那所得結果也為整型,即使不能整除只取整數部份。如果除數或被除數中有一個為浮點型或double型結果就會是精度更高的那類

c語言浮點型資料能不能取餘?

8樓:幻翼高達

一個浮點型的資料,轉化成整形資料後可以通過除法與取餘來獲得其個位、十位、百位。先把它強制轉換成int型,然後取餘 %是可行的。

例如浮點型資料521.63,轉化成整形後是521,對10取餘可以獲取個位數1,對100取餘再除以10取整可以獲得十位數2,除以100取整可以獲得百位數5。

擴充套件資料:

取餘運算的運算律:

1、(a + b) % p = (a % p + b % p) % p

2、(a - b) % p = (a % p - b % p) % p

3、(a * b) % p = (a % p * b % p) % p

4、a ^ b % p = ((a % p)^b) % p

5、((a+b) % p + c) % p = (a + (b+c) % p) % p (5)

6、((a*b) % p * c)% p = (a * (b*c) % p) % p (6)

7、(a + b) % p = (b+a) % p

8、(a * b) % p = (b * a) % p

9、(a+b) % p = ( a % p + b % p ) % p

10、((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p

9樓:

可以,但不能用操作符%,而要用庫函式fmodf、fmod或fmodl。因為%是整型取餘操作符,要求兩邊都是整型數才行,結果也是整型;fmodf用於float型變數操作,fmod用於double型變數操作,fmodl用於long double型變數操作。以下以fmod舉例:

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

#include "math.h"

int main(void)

執行結果是1.100000。

10樓:

a%3非法,取餘要求兩個都是整型

int轉換後是可以的

11樓:匿名使用者

浮點型資料不可取餘數

你的思路是對的,可以實現.

12樓:匿名使用者

可以先強制轉化後取餘。不能直接取餘。

13樓:冰度星雨

動手寫出來,然後執行就知道了。

實踐很重要!

c語言怎麼取餘?

14樓:張鈺濤

%就是取餘數運算,也就是模運算(mod)。

10/3在c語言裡是整除的意思,結果是3

10%3是求餘,結果是餘數1

10.0/3會轉換為兩個double型的數相除,答案是3.3333c語言是一門通用計算機程式語言,應用廣泛。

c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

怎麼將c語言中浮點型資料的整數部分與小數部分提取出來

如下 include int main 程式執行結果 程式設計思路就是輸入一個浮點數,把這個浮點強轉為整數,c語言強制轉換浮點數為整數的話,會丟失精度,也就是小數部分,再把原來的數減去整數部分,就可以得到小數部分,然後定義變數把相應的部分儲存,列印出來就行了。double x int a int x...

c語言中檔案指標能不能作為引數傳遞

1.指標完全可以作為函式的引數進行傳遞,其實在c中,陣列作為引數傳遞,跟指標作為引數傳遞都很類似的,指標傳的是該指標指向的地址,而陣列引數則是將該陣列的首地址傳遞過去。2.檔案指標 在c語言中用一個指標變數指向一個檔案,這個指標稱為檔案指標。通過檔案指標就可對它所指的檔案進行各種操作。定義說明檔案指...

用C語言編寫的程式,能不能直接在Linux下執行?

需要gcc命令將源 重新編譯,連線,形成二進位制檔案即可在linux下執行。你的問題問得模稜兩可的。按照我的理解有三個意思,1。在windows或mac系統下寫的可以正常編譯的c源 能不能再linux直接編譯執行。2,在windows或mac系統下編譯好的c程式可以不可以直接拿到linux下執行。3...