關於C語言裡取餘的問題,弄不明白下面這個取餘的值是怎麼得來的

2022-10-28 19:40:41 字數 6433 閱讀 7618

1樓:10伯樂

嗯,您可以這樣理解。

根據這個規則:

被除數= 除數*商+餘數

商肯定和符號有關,然後再反過來求餘數。

雖然有時候和編譯器有關,但是一般情況下都符合上面的規則。

所以存在 13%-3等價於 13=(-3)*(-4)+1 餘數應該是1

-13%-3等價於 -13=(-3)*4 +(-1) 餘數應該是-1明白了麼?

2樓:

我這裡13%-3是1啊

printf("%d",13%-3);

3樓:匿名使用者

我試驗的結果是兩個數的絕對值運算求餘,然後加上被除數的符號

4樓:

c語言取餘有一個陷阱。餘數的正負沒有明確規定,且與編譯器相關。所以最好是你自己確定一個餘數的規則,然後用絕對值取餘,再根據你自己的規則來決定是否對餘數取反。

具體的你可以看, by andrew koenig其中有討論。

我把相關的貼給你看

q=a/b;

r=a%b;

在除法和取餘關係中,最好維持如下的關係:

a)q*b+r==a

b)如果改變a的正負號,我們希望這會改變q的符號,但這不會影響q的絕對值。

c)當b>0時,希望r>=0,且r

但是可惜的是,上面的三條是矛盾的,只能滿足其中的兩條。如3/2,q=1時,r=1;先滿足第二條,(-3)/2,q=-1,則r=-1,則第三條不滿足,如果先滿足第三條,r=1,q=-2,則第二條又不滿足了。

大多數c編譯器放棄了第三條。

例如在取餘中,h=n%hashsize,此時h有可能負,如果我們不希望他是負的。可以這樣寫:

h=n%hashsize;

if(h<0) h+=hashsize;

而更好的做法是避免出現n的值為負這樣的情形,並且宣告n為無符號數。

c語言取餘的原理是怎麼回事?比如31%21=10 這個值是什麼得到的?

5樓:匿名使用者

a=b×c﹢d.用a÷b=c餘d。這裡c是商,d為餘數。取餘就是對某個除數b求餘數d的運算。所以上面結果為10.

6樓:匿名使用者

就是除不盡的餘數。

31-1*21=10;再比如5%2吧:5-2*2=1餘數是1;

10%4吧:10-2*4=2 餘數是2

7樓:

它就是一個數減掉n個另一個數的結果!例如31-21=10;59-5*10=9,

8樓:敦倫夜嚎

取餘的公式 a-a/b*b

31-31/21*21=10 這裡的31/21=1能理解吧

9樓:破曉崇明

簡單的說就是求餘數麼,31/21,商1餘10,結果就是10了

10樓:

31/21=1餘10

c語言中的「取餘」是什麼意思?(要詳細)

11樓:匿名使用者

其實求餘襲運算可以看成 a%b=a-(int)(a/b)*b1%2=1

2%5=2

a % b

如果a的話,這樣的商為0,餘數就是a

這個關係表示式a%b=a-(int)(a/b)*b 又是這麼解釋的先運算(a/b)然後a-(a/b的值)然後乘以b例1. 100除以2=50

結果為整數 則取值為0 (原因就是100除以2的值是整數,不是50.…………幾)

例2.  9除以2=4.5

則還是用4乘以2=8

再用9-8 結果就是餘數

12樓:匿名使用者

你好,取餘又稱取模,取餘的符號是%,只能對自然數進行運算,如1.3%4是錯誤的取模的運算也就是取兩個數相除的餘數,如3%1=0, 4%5=0, 2%3=2, 10%3=1~~謝謝~~

13樓:偶藹程豫

%取餘數運算,

模運算(mod)

設a,b兩整數

a%b結

a÷b餘數

例5%3=2

(商1餘2)

9%4=1

(商2餘1)

3%7=3

(商0餘3)

14樓:柳玉花鐸未

就是譬如你一個浮點數實際上是

float

2.6685

精度就是這麼多了,但他要輸出

10-8

精度,那麼就補零

輸出2.66850000

截斷你應該明白的。

他就是這個意思。

15樓:匿名使用者

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

設a,b是兩個整數,a%b的結果就就是a÷b得到的餘數

例如5%3=2 (商1餘2) 9%4=1 (商2餘1) 3%7=3 (商0餘3)

16樓:匿名使用者

取餘 不是是「%」 比如說10%2 他被整除了 所以他的餘數是0 要是10%3的話 他的餘數就是1 很簡單

17樓:匿名使用者

就是取餘數啊,,9%5=4

18樓:匿名使用者

6%4=26除4商1餘2

19樓:小史i丶

c語言中的「取餘bai」的意思是:

du1、給定zhi

一個正整數p,任意dao一個整數n,一定存回在等式 :

n = kp + r ;其答中 k、r 是整數,且 0 ≤ r < p,則稱 k 為 n 除以 p 的商,r 為 n 除以 p 的餘數。

2、n % p 得到結果的正負由被除數n決定,與p無關;例如:7%4 = 3, -7%4 = -3, 7%-4 = 3, -7%-4 = -3。

c語言中怎樣取餘數?

20樓:匿名使用者

1、首先請開啟復visual c++ 6.0,(本文使用制visual c++ 6.0軟體操作,也可使用visual studio或其他c/c++程式設計軟體。

),開啟成功後如圖所示。

2、點選左上角「檔案」選單按鈕,並點選「新建」按鈕。在彈出的視窗中首先選擇「檔案」選項卡,在左側列表中選取「c++ source file」項,

3、在右側檔名文字框中輸入檔名,如「demo」等。

4、按照**輸入演示**。

5、**執行:按照箭頭標識的順序,依次點選箭頭所指向的按鈕。按下最後一個按鈕成功後會彈出圖所示黑色窗體,窗體中顯示程式執行結果,並得出正確數值。

6、**講解:圖中綠色字型解釋了所在行**含義。核心**為 d = 5 % 3;「%」為取餘運算子。

7、完成效果圖。

21樓:鋼神綠鋼

1.引入標頭檔案bai#include "stdafx.h"和#include "stdio.h"。

2.定義du主函式zhivoid main(){},在函式內插入如下內容:

dao//定義整數

int number=180;

//取餘數專

number=number%17;

//輸出結果屬

printf("%d\n",number);

3.點選紅歎號測試。

22樓:王庚

馬蘭老師-清華附小c++第五課_求餘數及其應用

23樓:果體

c語言提供了一個取餘數的運算子%,稱之為「模」運算子。

只有兩個整數之間才可以進行模運算!

a % b 表示 用b來整除a,商整數,得到餘數。

如:5%3 =2

4%3 =1

3%3 =0

24樓:絳喵

你這樣想啊。

取餘運算,不就是數學求餘數的簡單計算嗎。

那5/16 是 小數,所以 整數部分肯定是 0 。

那麼 0 * 16 + 餘數 = 5

顯然餘數就是 5 。

關於c語言取餘與取模運算的問題,求詳細解釋。

25樓:匿名使用者

它不是說得復

很詳細了麼, 向負無

制窮方向

舍入(floor()函式 (又稱為地板函式, 與之相對還有天花板函式)--往小方向取整,即向負無窮方向取整), 8/3=2.67的地板為2(即模為2), -8/3=-2.67的地板為-3(即模為-3)

c語言裡如何求餘數?

26樓:郭磊

一、工具:安裝有windows 95及以上版本作業系統的桌上型電腦或筆記本。visual c++ 6.0 等。

二、操作步驟:

首先請開啟visual c++ 6.0,(本文使用visual c++ 6.0軟體操作,也可使用visual studio或其他c/c++程式設計軟體。),開啟成功後如圖所示。

點選左上角「檔案」選單按鈕,並點選「新建」按鈕。在彈出的視窗中首先選擇「檔案」選項卡,在左側列表中選取「c++ source file」項,在右側檔名文字框中輸入檔名,如「demo」等。

按照**輸入演示**。

**執行:按照箭頭標識的順序,依次點選箭頭所指向的按鈕。按下最後一個按鈕成功後會彈出圖所示黑色窗體,窗體中顯示程式執行結果,並得出正確數值。

**講解:圖中綠色字型解釋了所在行**含義。核心**為 d = 5 % 3;「%」為取餘運算子。

常見錯誤與語法要求:1、%前後必須為整數,不可以為小數等。2、%後面不允許為0。

注意事項:

輸入**時應將輸入法切換為英文狀態。

輸入**時應該注意大小寫等細節。

%前後只能是整數,後面不可以為0。

27樓:匿名使用者

c語言有一個取餘運算子 % ,稱之為「模」運算子。a % b 表示 用b來整除a,商整數,得到餘數。只有兩個整數之間才可以進行模運算!

c語言運算子是說明特定操作的符號 ,它是構造c語言表示式的工具。c語言的運算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都為運算子處理。除了常見的三大類,算術運算子、關係運算子與邏輯運算子之外,還有一些用於完成特殊任務的運算子,比如位運算子。

28樓:

求商為 c=a/b;

29樓:

a/b餘數為c,用c語言描述為:

c=a%b;

"%"為求餘運算子

30樓:遺忘與茗記

a%b,就是a除以b求餘數

31樓:

11除以10 商1 餘1

25除以10 商2 餘1

4除以10 商0 餘4

得到的商就是整除結果 ,後面餘數就是取餘的結果11/10=1 11%10=1

25/10=2 25%10=5

4/10=0 4%10=4

32樓:伊·梵

#include

#include

void main()

while(r!=0)

printf("最大公約數為%d\n",n);}

c語言中%取餘數的問題

33樓:夙尋凝武好

c語言裡對於有一些符號是不能直接輸出的,因為被c語言佔用了。所以有一些符號是需要特殊的方式才能輸出的。比如你說的%號,%號在c語言裡是求餘數的符號,如果需要輸出%的話,你需要連續寫2個%才能輸出。

如:printf("x%%y=%f\n",e);

34樓:

取餘運算,不就是數學求餘數的簡單計算嗎。那5/16 是 小數,所以整數部分肯定是 0 。那麼 0 * 16 + 餘數 = 5 顯然餘數就是5 。

35樓:匿名使用者

1、c語言中,%符號就是取餘數運算,也就是模運算(mod)。

mod的含義為求餘。模運算在數論和程式設計中都有著廣泛的應用,從奇偶數的判別到素數的判別,從模冪運算到最大公約數的求法。

2、設a,b是兩個整數,a%b的結果就就是a÷b得到的餘數例如:5%3=2 (商1餘2) 9%4=1 (商2餘1) 3%7=3 (商0餘3)

c語言取餘問題

36樓:匿名使用者

當輸出第2行的時候,外迴圈i=1,內迴圈j在0到7區間分別取值,分別代入計算if當中的條件語句都不能滿足,餘數都不等於1.因此輸出else當中的空格,所以第二行全部為空。當改成i*j%2==0時,外迴圈i=1,內迴圈j=0時代入計算1*0%2==0,條件滿足,所以輸出*號。

C 裡面,取整的函式是什麼,在 C語言中 取整 , 求餘的符號各是什麼?

1 首先,定義一個實型變數n,儲存取整的數值。2 用ceil函式對實數5.78取整,取整後的數值儲存在變數n中。3 輸出取整後的數值n。4 執行程式,輸出的值為6,這是因為ceil是對實數向上取整。5 ceil函式是否是四捨五入向上取整呢?接著,將ceil內的數更改為5.18。6 執行程式,看到的結...

關於C語言的問題,求教,一個關於C語言的問題,求教!!

a b 是賦值 a b 是等號 這是新手長犯錯誤 c語言中經常犯的毛病!初學者必看!c 語言的最大特點是 功能強 使用方便靈活。c編譯的程式對語法檢查並不象其它高階語言那麼嚴格,這就給程式設計人員留下 靈活的餘地 但還是由於這個靈活給程式的除錯帶來了許多不便,尤其對初學c語言的人來說,經常會出一些連...

關於C語言的問題,關於C語言的一個問題 50

李易安阿噴 char 256 表示向記憶體申請256個位元組空間,你輸入一個名字之後可能只佔了幾個位元組,所以你把256改成20,30或者100對結果是沒有任何影響,你輸入的name最少要2個位元組,但是你如果把256這個去了的話,就會出錯,為啥呢,因為你這個char型別只是申請了1個位元組。放不下...