请问下第12行a%%d,为什么会出现2个%,表示什么意思?还有个问题比如4%5求余为什么还是4。4/5不是等于0.8

01 #include <stdio.h>
02 void main()
03 {
04 int a=99;
05 int b=5;
06 int c=11;
07 int d=3;
08 printf("a-b=%d\n",a-b);
09 printf("b*c=%d\n",b*c);
10 printf("a/b=%d\n",a/b);
11 printf("a%b=%d\n",a%b);
12 printf("a%%d+b/c=%d\n",a%d+b/c);
13 }

话说这上面的这代码是你写的吗?如果是在书上看到的话,就劝你别看这本书了,有严重问题,容易误导初学者.
11和12应该像下面我这样写:
11 printf("a\%b=%d\n",a%b);
12 printf("a\%d+b/c=%d\n",a%d+b/c);
至于你的问题两个%肯定是它写错了,
4%5=4是正确的,这个是求余数,小学应该学过的吧
然后就是C语言里面4/5不是0.8,而是0,因为4和5都是整数,那么结果也是整数,也就是我们所说的整除.如果是4.0/5或者4/5.0结果就是0.8了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-07
a%%d 第一个%原样输出
4%5 是4除以5(取整数商)的余数,所以是4。追问

师父,第11行2个数相除有余数输入一个%就行了。12行是2个整数相除没有余数才用2个%%表示的。

追答

11行中的a%b,因为%b不是格式符,所以可以原样输出%;

12行中如果还用一个%,即a%d,则由于%d是格式符(此处输出整型数),而%%d表示%d不是格式符而是输出符号%d。

第2个回答  2014-08-07
相似回答