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

#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("%d,%d,%d",a,b,c);}
这个程序在电脑上运行第一步编译时都不行!这个程序是书上的原题,答案是1.2.0
我认为是1.2.2 这是为啥?

编译不起来是因为在 int a=1前你多加了个花括号{ , a<b>追答

a<b<c 满足两次循环的条件,先进行a<b的运算 得到1<c,以此类推直到c=0 不满足循环 ,退出循环,进行打印所以是1,2,0

温馨提示:内容为网友见解,仅供参考
无其他回答

#include <stdio.h> void main() { int a=1,b=2,c=3,d=4; printf("%d...
然后再算b+(c++): 2+3 根据前面的分析c做了加一运算,所以c最终结果为4 a=5,c=4

#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。

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

#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=1,b=2,c=3,d=4; printf("%d\\...
这里的(a+b,b+c,c+d)是一运算表达式,有"+"运算和","运算,printf("%d\\n",(a+b,b+c,c+d))就是将这个运算表达式的结果打印到屏幕上。

#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,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,c=2,t; while(a<b<c...
a=1,b=2,c=0

#include<stdio.h> void main() { int a=1,b=2,c; c=a\/b; printf("c...
你想啊,\/是除运算,而1\/2是小数。你定义的变量c是整形的,所以强制类型转换,将1\/2按整数型处理,就是0呢!如果你想输出1\/2可以这样 include<stdio.h> void main(){ int a=1,b=2;float c;c=a\/b;printf("c=%f\\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 则不进行运算了。回答很辛苦,希望采纳。

相似回答