初学莪湜汏騙ふ 发表于 2012-9-15 22:51:19

c语言问题

#include <stdio.h>
void main()
{
long x, y;
int a, b, c, d;
x = 5;
y = 6;
a = 7;
b = 8;
c = x + a;
d = y + b;
printf("c=x+a=%d,d=y+b=%b\n",c,d);
}
为什么结果是c=12 d=y+b=b 后面的d不是14

Ghitout 发表于 2012-9-15 22:59:02

输出的y是%b。。。

Ghitout 发表于 2012-9-15 22:59:37

不好意思是d=。。。

初学莪湜汏騙ふ 发表于 2012-9-15 23:07:13

Ghitout 发表于 2012-9-15 22:59 static/image/common/back.gif
不好意思是d=。。。

我想知道的就是为什么执行后D的值不是14而是y+b=b

初学莪湜汏騙ふ 发表于 2012-9-15 23:08:20

Ghitout 发表于 2012-9-15 22:59 static/image/common/back.gif
不好意思是d=。。。

为什么执行后d的值不是14而是y+b=b

Ghitout 发表于 2012-9-15 23:22:19

格式字符没有b。

初学莪湜汏騙ふ 发表于 2012-9-15 23:31:45

Ghitout 发表于 2012-9-15 23:22 static/image/common/back.gif
格式字符没有b。

能说详细点么

玩酷子弟lv 发表于 2012-9-15 23:56:49

把%b换成%d就行了,你粗心写错了

莱瑞古德 发表于 2012-9-16 00:29:55

#include <stdio.h>
void main()
{
long x, y;
int a, b, c, d;
x = 5;
y = 6;
a = 7;
b = 8;
c = x + a;
d = y + b;
printf("c=x+a=%d,d=y+b=%d\n",c,d);
}

贝壳 发表于 2012-9-16 05:54:25

最后一句:
printf("c=x+a=%d,d=y+b=%b\n",c,d);
\n前面的应该是%d,不是%b,格式符号%后面跟的字母有特殊意义,没有跟b的。所以printf函数就只打印了一个字母b。

绝影&瞬风 发表于 2012-9-16 12:24:02

输出格式问题,楼上的正解!!!

小飞鱼8 发表于 2012-9-16 17:14:54

嗯,楼上说的对

梧桐 发表于 2012-9-16 19:39:29

呵呵,楼主太粗心了~~

幕府幽魂 发表于 2012-9-16 21:02:34

粗心大意。。该打PP。。。检错的时候语法是首先是重点

肖凯文kevin 发表于 2012-9-16 21:27:18

大家来打楼主PP:lol

Ghitout 发表于 2012-9-17 23:03:52

初学莪湜汏騙ふ 发表于 2012-9-15 23:31 static/image/common/back.gif
能说详细点么

你去试打printf("y=%b,x=%%b");
没有%b这样的输出格式。编译时跳过第一个%显示b(%b)。

潜龙在渊 发表于 2012-9-18 10:56:54

因为printf是标准格式输出函数,你要想输出d=y+b=14,前面定义的格式必须改为d=y+b=%d

我是一个小疯子 发表于 2012-9-19 21:28:07

printf("c=x+a=%d,d=y+b=%b\n",c,d);中d=y+b=%b是用的%b,如果用%d就等于14,%b没听说过

阔怀 发表于 2015-8-28 11:44:02

{:1_1:}

Minhal 发表于 2015-8-28 15:34:33

正确代码


#include <stdio.h>
void main()
{
long x, y;
int a, b, c, d;
x = 5;
y = 6;
a = 7;
b = 8;
c = x + a;
d = y + b;
printf("c=x+a=%d,d=y+b=%d\n",c,d);
}


printf("c=x+a=%d,d=y+b=%b\n",c,d);代码这行中,第二个¥后面应该是d,楼主打成了b,所以出现了那样的结果。
页: [1]
查看完整版本: c语言问题