鱼C论坛

 找回密码
 立即注册
查看: 2537|回复: 19

c语言问题

[复制链接]
发表于 2012-9-15 22:51:19 | 显示全部楼层 |阅读模式
2鱼币
#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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-9-15 22:59:02 | 显示全部楼层
输出的y是%b。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-15 22:59:37 | 显示全部楼层
不好意思是d=。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-9-15 23:07:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-9-15 23:08:20 | 显示全部楼层
Ghitout 发表于 2012-9-15 22:59
不好意思是d=。。。

为什么执行后d的值不是14而是y+b=b
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-15 23:22:19 | 显示全部楼层
格式字符没有b。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-9-15 23:31:45 | 显示全部楼层
Ghitout 发表于 2012-9-15 23:22
格式字符没有b。

能说详细点么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-15 23:56:49 | 显示全部楼层
把%b换成%d就行了,你粗心写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-16 05:54:25 | 显示全部楼层
最后一句:
printf("c=x+a=%d,d=y+b=%b\n",c,d);
\n前面的应该是%d,不是%b,格式符号%后面跟的字母有特殊意义,没有跟b的。所以printf函数就只打印了一个字母b。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-16 12:24:02 | 显示全部楼层
输出格式问题,楼上的正解!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-16 17:14:54 | 显示全部楼层
嗯,楼上说的对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-16 19:39:29 | 显示全部楼层
呵呵,楼主太粗心了~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-16 21:02:34 | 显示全部楼层
粗心大意。。该打PP。。。检错的时候语法是首先是重点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-16 21:27:18 | 显示全部楼层
大家来打楼主PP:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-17 23:03:52 | 显示全部楼层
初学莪湜汏騙ふ 发表于 2012-9-15 23:31
能说详细点么

你去试打printf("y=%b,x=%%b");
没有%b这样的输出格式。编译时跳过第一个%显示b(%b)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-18 10:56:54 | 显示全部楼层
因为printf是标准格式输出函数,你要想输出d=y+b=14,前面定义的格式必须改为d=y+b=%d
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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没听说过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-28 11:44:02 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-28 15:34:33 | 显示全部楼层
正确代码


  1. #include <stdio.h>
  2. void main()
  3. {
  4. long x, y;
  5. int a, b, c, d;
  6. x = 5;
  7. y = 6;
  8. a = 7;
  9. b = 8;
  10. c = x + a;
  11. d = y + b;
  12. printf("c=x+a=%d,d=y+b=%d\n",c,d);
  13. }
复制代码


  1. printf("c=x+a=%d,d=y+b=%b\n",c,d);
复制代码
代码这行中,第二个¥后面应该是d,楼主打成了b,所以出现了那样的结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-24 16:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表