/和%的一些注意事项

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.05.0%2 结果是语法错误;

  1. 此题一开始用% 老是报error,查无所获

  2. 查了网上ac的答案,但出现了上述注释里的困惑

  3. 寻求多个小伙伴帮助,并在VS2012里稍加调试,终于脑子灵光一闪

    • cm/N 本身运算结果是double

    • 由于foot 被定义为int 型,故在赋值运算中,footcm/N 强转为int 的值

    • cm/N-foot 就是cmN 取余的结果

posted on 2020-02-01 17:00  Luuuw  阅读(245)  评论(0)    收藏  举报

导航