c语言中的除0操作
1.整型数
int fenzi = 10;
int fenm = 0;
int jieguo = 0;
jieguo = fenzi / fenm;
printf("jieguo = %d" , jieguo);
结果就是程序在编译时直接报错,说发生了整型数除0操作
2.浮点型除0操作
float fenzi = 10;
float fenm = 0;
float jieguo = 0;
jieguo = fenzi / fenm;
printf("jieguo = %f" , jieguo);
结果就是程序可能正常编译但是运行结果是
这里的1.#INF00是一个特殊的符号吧
1.#INF00表示这是一个无穷大的正数,这个数超出了计算机可以表示的范围了,同 inf,同理
-1.INF00表示这是一个无穷大的负数,这个数的绝对值超出了计算机的表示范围,同 -inf。
还有一个符号表示这个结果不是个数,例如 sqrt(-1), 对负数开平方,对负数取对数,0.0/0.0,0.0*∞, ∞/∞ 等,这个结果用 1.#IND00或者 NaN表示
3.C 语言中的 算术运算符 \
当 \ 用作算术运算符时表示除法,如果除数和被除数都是整型,那么运算结果也是一个整数,余下的作为余数,例如
int a = 99,b = 17,c = 0,d = 0;
c = a \ b;
d = a % b;
那么结果就是
c = 5;
d = 14;
int a = 17,b = 99,c = 0,d = 0;
c = a \ b;
d = a % b;
那么结果就是
c = 0;
d = 17;
但是当除数或者被除数中有一个为浮点型的时候,会发生隐式类型转换,计算将按照实际的带小数计算
int a = 99;
float b = 17,c = 0;
c = a \ b;
那么结果就是
c = 5.82352;
float a = 17;
int b = 99,c = 0;
c = a \ b;
那么结果就是
c = 0.171717;
取余运算符 % 双目必须是整型。