c/c++中的小问题,if(a>b)t=a;a=b,b=t;} ;printf(%d,a);如果b<a,那么执行什么?

a=2;b=++a+10什么意思?
void main()
{
int a[3][4]={4,2,5,6,7,6,8,3,9,6,1,5};
int i,j,row,col,max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(a[i][j]>max)
{
max=a[i][j];
row=i;
col=j;}
printf(/%d,%d,%d,max,row,col);}
如果if条件不成立是不是直接输出??如果a[0][1]<a[0][0],难道直接输出结果?

第1个回答  2013-04-24
你的大括号都没打全 if(a>b) { t= a ; a=b;b=t} 后面的分号多余 大括号没包括printf函数的话就是(b<a) 打印a
a赋值2 先对a做自增再与10求和再赋值于b 也就是b等于13
第2个回答  2013-04-24

问题1 

      不执行大括号之间的,直接输出a

问题2

        a先自增为3再加10 把13赋值给b



#include <stdio.h>
int main()
{
int a[3][4]={4,2,5,6,7,6,8,3,9,6,1,5};
int i,j,row,col,max=a[0][0];
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
if(a[i][j]>max)
{
max=a[i][j];
row=i;
col=j;
}
}
printf("%d,%d,%d",max,row,col);
return 0;
}

当然不会直接输出,你这个程序和我这个加了大括号的一样啊。

如果if不满足,会继续for循环的。知道两个for循环都弄完再最后运行那条printf语句

本回答被提问者和网友采纳
第3个回答  2013-04-24
现将a赋值为2,然后a自增1,然后将a+10的结果赋值给b。
第4个回答  2019-08-13
你的大括号都没打全
if(a>b)
{
t=
a
;
a=b;b=t}
后面的分号多余
大括号没包括printf函数的话就是(b<a)
打印a
a赋值2
先对a做自增再与10求和再赋值于b
也就是b等于13
第5个回答  2013-04-24
楼上正解
btw尽量少用这样的方法,现在很多坑爹的书上总是用各种难以让人看懂的句法
其实理解了就好
正规编程都是不建议这样的方法的追问

void main()
{
int a[3][4]={4,2,5,6,7,6,8,3,9,6,1,5};
int i,j,row,col,max=a[0][0];
for(i=0;imax)
{
max=a[i][j];
row=i;
col=j;}
printf(/%d,%d,%d,max,row,col);}
如果if条件不成立是不是直接输出??如果a[0][1]<a[0][0],难道直接输出结果?

追答

直接输出了
if里面的条件如果不成立的话,则它下面的语句块无论写什么都不会“进去”

C语言小问题 if (a>b) t=a; a=b; b=t; 就是搞不懂这个怎么转换的_百 ...
t就是一个中间变量 就像有两个座位a,b 想a,b换位置 就得a先起来这时还得有个空坐t,a坐到t那里,这是b才能做到a的位置,然后坐到t上的a再回到b原来的座位(b=t中的t值已经是a了)。这是c很常见的一个交换位置的算法,只能这样交换。因为每个变量都有自己的内存空间,都有自己的位置。

...b<c) {t=a;a=b;b=t;c--;} printf("%d,%d,%d",a,b,c); } 为什么这个...
因为<的结合顺序是自左向右的,所以他会先执行a<b,这里是成立的,所以会返回1,然后在判断1<c也是成立的,会执行循环,执行后a = 2,b = 1,c = 1,然后继续判断循环条件是否成立,更上次一样想判断a<b,结果是0,返回0,在判断0<c;循环条件成立继续循环内容,执行后a = 1,b = 2, c ...

...if(a>b){a=b,b=a;} printf("%d,%d\/n",a,b); }
void main(){ int a,b,t;scanf("%d,%d",&a,&b);if(a>b){t=b;b=a;a=t;} printf("%d,%d\\n",a,b); }

...t; if(a<b){t=a;a=b;b=t;} return(a,b); 为什么c最后输出的是3_百 ...
实参a=3,b=5,传给形参后,形参的a=3,b=5,a<b,满足if条件,执行if语句块,交换a,b的值,a=5,b=3,return(a,b); 这条语句,逗号运算符的结合性是从左至右,因此最后return返回的是变量b的值,也就是3了,所以main()函数的变量c的值是3了。

main(){int a=4,b=3,c=5,t=0;if(a<b)t=a;a=b;b=t;if(a<c)t=a;a=c...
main(){ int a=4,b=3,c=5,t=0;if(a<b){ t=a;a=b;b=t;\/\/交换a和b的值 } if(a<c){ t=a;a=c;c=t;\/\/交换a和c的值 } printf("%d%d%d\\n",a,b,c);} \/\/此程序把a,b,c的最大值赋给a

void main() {int a=4,b=3,c=5,t=0; if(a<b) t=a;a=b;b=t; if(a<c...
先给abc赋值,判断4是否小于3,不小于则不执行,4小于5,则把4赋给t,5赋给a,再把4赋给c,输出abc,a=5 b=3 c=4

main(){ int a=4,b=3,c=5,t=0; if(a<b)t=a;a=b;b=t;if(a<c)t=a;a...
结果是:5,3,4 if(a<b)的运算结果是将a,b中数值大的放在a里面,第一个if结束后a=4,b=3; if(a<c)的运算结果是将a,b中数值大的放在a里面,第二个if结束后a=5,c=4; 最后输出abc是5,3,4

void fun(int a,int b) { int t; t=a;a=b;b=t; } main()
首先这个程序是有问题的,可能是copy的原因吧,就是你把','打成了'.',然后就是你想交换数字顺序,结果却没有变化,那是因为你在调用fun函数时传入的是两个值,这样在fun函数中执行的a,b其实只是c[i]和c[i+1]的拷贝,是独立的,所以你在fun中所做的改变并没有反应到原值中,建议你可以传...

辗转想除的算法过程
end.C语言代码:include int main() { int a,b,t; scanf("%d %d",&a, &b); if(a > b) { while(a % b > 0) { t=a % b;a=b;b=t; } printf("%d\\n",a); } return 0; } 通过上述步骤和代码,可以清晰地理解并实现辗转相除算法,进而求解两个数的最大公约数。

C语言中if语句的运用
} 第1句:新建4个变量并分别赋初值;第2句:如果b小于a并且a小于c则执行t=a这条语句。由于b大于a这个条件,故不执行这条语句;然后执行a=c;c=t;这两条语句,这两条语句不是if下面的语句。执行这两条语句后:a=5,c=99;如果这样写:if(b<a&&a<c) {t=a;a=c;c=t;} 则这三条语句...

相似回答