问个关于else语句的问题。。。。。。

风吹头飞扬 2012-04-28 11:11:10
在c语言中 else总是和之前与最近的且不带else的if语句配对
大家看看这段代码
main()
{
int a=3,b=-8,c=5;
if(a<b)
if(b<0) c+=10;
else c+=20;
printf("%d",c);
}
输出的结果是c=25
和c语言中的规定不符啊
...全文
86 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
风吹头飞扬 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

[Quote=引用 11 楼 的回复:]
引用 7 楼 的回复:

我是按书上敲得代码
。。。。。

不知道你看什么书,这么写代码看起来除了让你逻辑出错没有什么好处......
你这段代码正常的结构是:
C/C++ code

int main()
{
int a=3,b=-8,c=5;
if(a<b)
if(b<0) c+=10;
……
[/Quote]恩 我在试试 3q
BlueRhino 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
引用 7 楼 的回复:

我是按书上敲得代码
。。。。。

不知道你看什么书,这么写代码看起来除了让你逻辑出错没有什么好处......
你这段代码正常的结构是:

int main()
{
int a=3,b=-8,c=5;
if(a<b)
if(b<0) c+=10;
else c+=20;
printf("%d",c);
system("pause");
}

结果……
[/Quote]
BlueRhino 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

我是按书上敲得代码
。。。。。
[/Quote]
不知道你看什么书,这么写代码看起来除了让你逻辑出错没有什么好处......
你这段代码正常的结构是:
int main()
{
int a=3,b=-8,c=5;
if(a<b)
if(b<0) c+=10;
else c+=20;
printf("%d",c);
system("pause");
}
结果是5
iaccepted 2012-04-28
  • 打赏
  • 举报
回复
a=3,b=-8,所以a<b就不成立啊,直接执行的c=c+20啊,所以结果就是25啊。
风吹头飞扬 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

你那是什么编译器?答案很明显是5
[/Quote]书上的代码错了
风吹头飞扬 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

C/C++ code
int a=3,b=-8,c=5;
if(a<b)
{
if(b<0)
{
c+=10;
}
}
else
{
c+=20;
}
printf("%d",c);//这样输出结果是25 不知道是不是你要的
[/Quote]
我觉得也是这样 可能书上有错误
风吹头飞扬 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

[code=C/C++]
main()
{
int a=3,b=-8,c=5;
if(a <b)
{
if(b <0) c+=10;
}
else
{
c+=20;
}
printf( "%d ",c);
}
好看多了吧……
[/Quote]
我是按书上敲得代码
。。。。。
sundayX 2012-04-28
  • 打赏
  • 举报
回复
你那是什么编译器?答案很明显是5
淼哥 2012-04-28
  • 打赏
  • 举报
回复
中间的if被忽略掉了
c_losed 2012-04-28
  • 打赏
  • 举报
回复
	int a=3,b=-8,c=5;
if(a<b)
{
if(b<0)
{
c+=10;
}
}
else
{
c+=20;
}
printf("%d",c);//这样输出结果是25 不知道是不是你要的
Red_angelX 2012-04-28
  • 打赏
  • 举报
回复

main()
{
int a=3,b=-8,c=5;
if(a<b)
{
if(b<0) c+=10;
}
else
{
c+=20;
}
printf("%d",c);
}
好看多了吧 初学者把代码写规范一点

Red_angelX 2012-04-28
  • 打赏
  • 举报
回复
if(a<b)就不符合
直接调到
c+=20了
hen_hao_ji 2012-04-28
  • 打赏
  • 举报
回复

main()
{
int a=3,b=-8,c=5;
if(a<b)
{
if(b<0)
{
c+=10;
}
else
{
c+=20;
}
}
printf("%d",c);
}

所以写 if,else应该尽量写大括号

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧