c语言问题,程序如下,运行结果为什么是3,5,3,我看是3,5,5

#include<stdio.h>main(){inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n"... #include<stdio.h>
main()
{
int a=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);
}
展开
 我来答
蜻蜓点水bai236
2014-03-23 · TA获得超过2387个赞
知道大有可为答主
回答量:2653
采纳率:66%
帮助的人:1238万
展开全部
第一次的if语句只有一条语句

a=b后面有个分号,c=a不是if的语句,所以是一定要执行的语句
执行完之后c和a是相等的
那么第二个if就不会执行
意思是,如果a和c不相等,就执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汐日南莘
2014-03-23 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7656万
展开全部
        int a=3,b=5,c=7;
if(a>b)a=b;//这个if语句不成立 所以b不会赋值给a
c=a;//这是把a赋值给c  这时a=3,b=5,c=3
if(c!=a)c=b;//因为c等于a 所以这句不运行
printf("%d,%d,%d\n",a,b,c);//最后结果 3 5  3
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
貌似風輕
2014-03-23 · TA获得超过7280个赞
知道大有可为答主
回答量:1672
采纳率:94%
帮助的人:703万
展开全部
#include<stdio.h>
main()
{
int a=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);
}

等价于

#include<stdio.h>
main()
{
int a=3,b=5,c=7;
if(a>b)
{
    a=b;
}
c=a;
if(c!=a)
{
    c=b;
}
printf("%d,%d,%d\n",a,b,c);
}

两个if都不成立,只执行了c=a;

所以结果是3,5,3


if、for、while等语句如果没加大括号怎默认只有下一个语句在大括号内。

if()

a=b;

b=c;

等价于

if()


a=b;


b=c;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wardliu
2014-03-23 · TA获得超过1972个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:87.7万
展开全部
if(a>b)//3<5不执行if下的语句
a=b;
c=a;//这条执行c=a
if(c!=a)//上条执行完c==a
c=b;
printf(........);//故353
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水里风
2014-03-23 · TA获得超过1529个赞
知道小有建树答主
回答量:1294
采纳率:80%
帮助的人:529万
展开全部
a=b;是第一个if的,而后面的c=a;不属于第一个if,,所以哪怕第一个if不执行这条语句也会执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式