C语言,这个程序的结果是0,2是怎么得来的?求详细过程,谢谢!!

Python018

C语言,这个程序的结果是0,2是怎么得来的?求详细过程,谢谢!!,第1张

因为你的

if(b==1||c==1)andif(c==2)的循序有差别

c语言执行for的循序是从上到下。程序一当执行到b==1与c==2

两个for都满足时,优先执行最上的程序for(c==2),执行换行

所以

,两个程序的差别是

程序一的6在第二行

程序二的6在第三行

在C语言中,0%2= 0 。

在C语言中,这是一个取模运算,定义如下:

给定一个正整数p,任意一个整数n,一定存在等式 :

n = kp + r ;

其中 k、r 是整数,且 0 ≤ r <p,则称 k 为 n 除以 p 的商,r 为 n 除以 p 的余数

对于正整数 p 和整数 a,b,定义如下运算:

取模运算:a % p(或a mod p),表示a除以p的余数。

模p加法: ,其结果是a+b算术和除以p的余数。

模p减法: ,其结果是a-b算术差除以p的余数。

模p乘法: ,其结果是 a * b算术乘法除以p的余数。

说明:

1. 同余式:正整数a,b对p取模,它们的余数相同,记做 或者a ≡ b (mod p)。

2. n % p 得到结果的正负由被除数n决定,与p无关。例如:7%4 = 3, -7%4 = -3, 7%-4 = 3, -7%-4 = -3。

扩展资料:

1、运算规则

模运算与基本四则运算有些相似,但是除法例外。其规则如下:

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

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

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

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

结合律:

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

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

交换律:

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

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

分配律:

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

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

2、重要定理

若a≡b (% p),则对于任意的c,都有(a + c) ≡ (b + c) (%p);

若a≡b (% p),则对于任意的c,都有(a * c) ≡ (b * c) (%p);

若a≡b (% p),c≡d (% p),则 (a + c) ≡ (b + d) (%p),(a - c) ≡ (b - d) (%p),(a * c) ≡ (b * d) (%p);

参考资料来源:百度百科-取模运算

c语言中对一个整数求余操作采用模运算,运算符为%

a模b的运算方法为: 用a除以b,商整数c,然后返回a-b*c的值。

如:

7%2 的运算过程为: 7/2=3...1

7%5 的运算过程为: 7/5=1...2

所以,

0%2 的运算过程为: 0/2=0...0