关于C语言,以下程序段执行之后输出的结果为什么是1,6,6, #include <stdio.h> void main() { int a=6,b=12,

如题所述

#include <stdio.h>
void main()
{
int a=6,b=12,c=1,t=0;
if(a<b)
t=a; //因为a<b成立,故而执行后 t = 6
a=b;b=t; //此处是不受if条件控制的,故而运行后 a=12, b=6
if(a<c)
t=a; //此时a<c不成立,不执行这条语句
a=c;c=t; //此处不受if条件控制,运行后 a = 1, c = t = 6
printf("%d,%d,%d\n",a,b,c,t); //故而程序运行完后 a =1,b=6, c=6, t=6
}
//printf("%d,%d,%d\n",a,b,c,t); 这句的输出格式中只有三个 %d,故而只会输出前三个a b c的值
// 即为 1,6,6
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-05
很简单啊 if后面如果没有花括号表明if 的作用域的话,只有第一个分号被执行,即使这个语句为空。
因此:a>b true t=a=6 a=b=12 b=t=6;
a<c false t=a不执行,a=c=1 c=t=6
所以 a=1 b= 6 c= 6 t=6
printf("%d,%d,%d\n",a,b,c,t); 这句的输出格式中只有三个 %d,故而只会输出前三个a b c的值

即为 1,6,6
第2个回答  2012-07-05
运行完后
a = 1; b = 6, c= 6, t = 6
你的pirntf()里面,只有三个占位符,所以只会输出 a, b, c
第3个回答  2012-07-05
if ()后面的语句 想要一同执行的话,要加{ }的。你没加!
第4个回答  2012-07-05
代码不全,发全代码追问

#include
void main()
{
int a=6,b=12,c=1,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d,%d,%d\n",a,b,c,t);
}

第5个回答  2012-07-05
代码追问给我
以后记得放在补充里边,要不看不见追问

#include
void main()
{
int a=6,b=12,c=1,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d,%d,%d\n",a,b,c,t);
}

追答

执行过程
1.a<b 成立 t=6
2.a=12
3.b=6
4.a<c 不成立
5.a=1
6.c=6
输出a b c 具体数值为 1 6 6

相似回答