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);
} 展开
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);
} 展开
6个回答
展开全部
第一次的if语句只有一条语句
a=b后面有个分号,c=a不是if的语句,所以是一定要执行的语句
执行完之后c和a是相等的
那么第二个if就不会执行
意思是,如果a和c不相等,就执行
a=b后面有个分号,c=a不是if的语句,所以是一定要执行的语句
执行完之后c和a是相等的
那么第二个if就不会执行
意思是,如果a和c不相等,就执行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(a>b)//3<5不执行if下的语句
a=b;
c=a;//这条执行c=a
if(c!=a)//上条执行完c==a
c=b;
printf(........);//故353
a=b;
c=a;//这条执行c=a
if(c!=a)//上条执行完c==a
c=b;
printf(........);//故353
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=b;是第一个if的,而后面的c=a;不属于第一个if,,所以哪怕第一个if不执行这条语句也会执行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询