#include "stdio.h" void main() { int a=1,b=2,c=2,t; while(a<b<c) {t=a;a=b;b=t;c--;} printf("a=%d,b=%

如题所述

第1个回答  2012-06-05
a=1,b=2,c=0本回答被提问者采纳

...{ int a=1,b=2,c=2,t; while(a<b<c) {t=a;a=b;b=t;c--;} printf...
a=1,b=2,c=0

...{ int a=1,b=2,c=3,t; while(a<b<c) { t=a;a=b;b=t;c--; } print...
include"stdio.h"main(){ int a=1,b=2,c=3,t;while(a<b<c) \/\/第一次执行到这里成立(a<b成立为1,1<c成立)。执行括号里的。这是a为2,b为1,c为2.在判断的时候,a<b不成立为0,0<c成立,所以仍然成立,继续执行。这是a为1,b为2,c为1,在判断(a<b成立为1,1<1不成立了...

#include "stdio.h" void main() { int a,b,c,t; a=1;b=2;c=2; whi...
include "stdio.h"void main(){int a, b, c, t,cmp; a=1; b=2; c=2;int loop_count = 0; while((cmp = a < b) < c) { printf("cmp = %d\\n", cmp);t=a;a=b;b=t;c--;++loop_count;} printf("%d,%d,%d\\n", a, b, c); printf("loop cou...

#include<stdio.h> void main() {int a=1,b=2,c; c=a<b?3:a>=b?a...
include<stdio.h> void main() {int a=1,b=2,c; c=a<b?3:a>=b?a:b; \/*a<b时,c=3,否则肯定是a>=b,则c=a*\/ printf("%d\\n",c);}

#include<stdio.h> void main() { int a=2,b=1,c=2; if(a<b) if(b<...
的值为假,则整个表达式的值就为假,它是从左向右计算的。所以执行该表达式后,b 的值还是它的初始值,即不进行运算。若a || b ,如果a 的值为真,整个表达式的值就为真,执行顺序同上。b 的真假由最初的真假来判断,也就是说,当a 为真时,b 则不进行运算了。回答很辛苦,希望采纳。

#include<stdio.h> void main() { {int a=1,b=2,
编译不起来是因为在 int a=1前你多加了个花括号{ , a<b>

# include<stdio.h> void main() { int a=1,b=2,
子函数应该放在主函数的前面,因为子函数在主函数之前未申明过,你这个程序应该没错,将子函数放到主函数前就可以了。我以前也遇过这种问题。

#include <stdio.h> main () { int a=1,b=2,c=3; if (a>c) b=a;a=...
if (a>c) b=a;a=c;c=b; 相当于 if (a>c)b=a;\/\/ 不执行 a=c;\/\/ 执行 c=b; \/\/ 执行 也就是说只有 b=a 是 if 条件成立时执行的语句。由于 a>c 条件不成立,所以不执行 b=a;

#include<stdio.h> void main() {int a=1,b=2,c=3; if(c=a) printf...
注意看这句 if(c=a)括号里面只有一个等号,所以是一个赋值表达式,也就是把a的值赋给c,表达式的结果就是所赋的值1,表达式的值非零为真,继续执行,输出c的值,由于c已经被赋为1了,所以输出结果为1。注意 c=a 和 c==a 是不一样的,前者是赋值,后者才是比较相等。

#include <stdio.h> void main ( ) { int a=1,b=2,
k=(n=b>a)||(m=a<b);首先计算 n = b > a,即 n = 2 > 1,即n = 1 由于是||或运算符,有一个为真,那结果一定为真,就不会继续往下计算了。所以后面的m=a<b跳过不计算,直接赋值 k = 1。所以最终结果是k = 1,m没有人修改,m = 0。

相似回答