编程论坛's Archiver

milosky 发表于 2008-7-18 22:00

一个简单的问题 ,,,在线=====

#include "stdio.h"
main()
{
int a=6,b=2;
printf("a%=b is %d\n",a%=b);
}
怎么结果是%d呢啊

xuanzilie 发表于 2008-7-18 22:03

没有啊 我这一切正常

milosky 发表于 2008-7-18 22:06

我 用 的是tc
你用的是吗

xuanzilie 发表于 2008-7-18 22:08

是dev-C++  应该比TC更严格啊

coming 发表于 2008-7-18 22:08

晕 怎么能这样写呢~~~
printf后面的参数表不能写成a%=b这个一个赋值语句的啊~~~还有前面的是什么意思啊
a%=b ?是不是应该写成a%%=b?

xuanzilie 发表于 2008-7-18 22:10

对 说的对

milosky 发表于 2008-7-18 22:11

前面的是求余

相当于a=a%b

milosky 发表于 2008-7-18 22:12

能不能说的在具体一点谢谢了
最好帮改下

coming 发表于 2008-7-18 22:21

printf("a%=b is %d\n",a%=b);

//在c中想出现%应该用%%,a%=b是一个赋值的语句 赋值成功就是一吧,不成功就是零
//我想这个不是楼主的本意吧
改为这样你看看行不行 是不是你的意思
#include "stdio.h"
main()
{
int a=6,b=2;
printf("a%%b is %d\n",a%b);
}

hundnn 发表于 2008-7-19 11:02

[quote][bo][un]coming[/un] 在 2008-7-18 22:08 的发言:[/bo]

晕 怎么能这样写呢~~~
printf后面的参数表不能写成a%=b这个一个赋值语句的啊~~~还有前面的是什么意思啊
a%=b ?是不是应该写成a%%=b? [/quote]


说得对

多来米 发表于 2008-7-19 11:11

我这显示
a%=b is %d

用的是Win-TC

子林 发表于 2008-7-20 11:32

回复 9# coming 的帖子

? 错了吧  就用%而非%%

ggggiaqgyd 发表于 2008-7-20 13:05

有is 还用=

qxykzx 发表于 2008-7-20 15:50

个人见解

我觉得printf("a%%b is %d\n",a%b);是对的,我用的是tc。如果只用一个%就会出现楼主所说的问题。顺便还想提一下printf中转义字符%的问题:

如何在 printf 的格式串中输出一个 '%'?我试过 \%, 但是不行。
只需要重复百分号: %%。
原因是:\%不行, 因为反斜杠 \ 是 编译器的转义字符, 而这里我们的问题最终是 printf 的转义字符。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.