2020-02-01
1 #include <stdio.h> 2 #define N 30.48 3 #define M 12 4 ? 5 int main() 6 { 7 int cm=0; 8 int foot; 9 int inch; 10 scanf("%d", &cm); 11 foot = cm/N; 12 inch = (cm/N-foot)*M;//为什么这里(cm/N-foot)!=0 ?? QAQ 13 printf("%d %d", foot ,inch); 14 return 0; 15 }
除法运算符
“/”参与运算的量均为整型------> 结果为整型;
10/4==2.0,10/4.0==2.5若运算量中有一个为实型----->结果为双精度实型;
求余运算符
"%",二元运算符,具有左结合性;参与运算的量均为整型;
求余结果等于两个数相除后的余数;
注——
5%2.0和5.0%2结果是语法错误;
此题一开始用% 老是报error,查无所获
查了网上ac的答案,但出现了上述注释里的困惑
寻求多个小伙伴帮助,并在VS2012里稍加调试,终于脑子灵光一闪
cm/N 本身运算结果是double
由于foot 被定义为int 型,故在赋值运算中,foot是cm/N 强转为int 的值
故 cm/N-foot 就是cm对N
原文:https://www.cnblogs.com/luuuw/p/12249057.html