#include<stdio.h> void main( ) { int a,b,

#include<stdio.h>
void main( )
{
int a,b,c;
a=10;b=50;c=30;
if(a>b)
a=10,b=c;
c=a;
printf("a=%d,b=%d,c=%d",a,b,c);
}

if后面的赋值语句不执行吧!
不满足条件谢谢啦!

第1个回答  2015-12-21
1、是不执行。
2、使用if()语句1;语句2; 只有紧跟其后的一条语句属于这个if(),也就是说语句1;是这个if()的,语句2;就不是了。要想使语句2;也属于这个if()需要使用大括号,如下:
if()
{
语句1;
语句2;
}

3、a=10,b=c;使用逗号运行符,算一句。
第2个回答  2015-12-17
条件控制语句只能控制紧接它后面的第一条语句,比如
if()
xxx;
yyy;
if只能控制xxx(就是说if满足就执行xxx, 不满足就不执行),不能控制yyy(yyy一定会执行)
如果要控制多条语句,请使用花括号{}
if()
{

xxx;
yyy;
}
第3个回答  2015-12-16
哈哈,小兄弟,这绝对是大学出的龌龊考题。

if(a>b)
a =10,b=c;
c=a;

程序里面相当与:
if(a>b){
a =10,b=c;

c=a;

只有后面的这句 a =10,b=c;执行,其余的都是执行的。

也就是说,打印出来应该是 :10,50,10追问

错了吧

只执行c=a吧

追答

噢 写错二连

追问

追答

if(a>b)
a =10,b=c;
c=a;

程序里面相当与:
if(a>b){
a =10,b=c;

c=a;

因为 10 <50的,所以后面的这句 a =10,b=c; 不执行,下面c=a;是执行的。

追问

为什么啊 这三个赋值语句都在if后面啊

区别就是不在一行

谢谢啦 说说呗

本回答被网友采纳
第4个回答  2015-12-18
你好,第二句c=a;不会被执行,这是c编译器的缘故,不用{}的话默认只执行后面一句追答

学习需要注意这种特殊写法

第5个回答  2015-12-16
a=10,b=c;不执行
但是c=a;是执行的。追问

为什么

谢谢啦

相似回答