讨论/算法和数据结构/为啥等于0啊,不等于20?/
为啥等于0啊,不等于20?

输入15,20

#include<stdio.h>

int main(void) {
    int a,b,t;
    t=0;
    scanf("%d,%d",&a,&b);
    if(a>b) t=a;a=b;b=t;
    printf("%d",b);
    return 0;
}

为啥等于0啊,不等于20?

你这代码等价于:

if(a>b)
    t=a;
a=b;
b=t;

因为a<b,所以让b的值(20)赋值给a,又把t的值(0)赋值给b,所以b的值为0了

你想要的功能是不是,当a>b的时候交换a与b的值,否则不变?那你需要把后续语句写在同一个代码块里,像这样:

if(a>b) 
{
    t=a;
    a=b;
    b=t;
}
展开全部 8 讨论