你的if语句都没有加括号啊,if语句如果后面不加括号,那么只有if语句下面的第一句属于if语句,其它的不属于if语句。
在你的代码中,只有t = a;这一句if(a>b)这个if语句。a=b;b=t;则不属于if(a>b)。
如果想让a=b;b=t;也属于if(a>b),就需要加{}。如下:
if (a > b)
{
t = a;
a = b;
b = t;
}
加上{}后,就表示{}中的所有语句都属于if(a>b)这个if语句。
代码整体修改如下:
#include <stdio.h>
int main()
{
int a, b, c, t;
scanf_s("%d,%d,%d", &a, &b, &c);
if (a > b)
{
t = a;
a = b;
b = t;
}
if (a > c)
{
t = a;
a = c;
c = t;
}
if (b > c)
{
t = b;
b = c;
c = t;
}
printf("%d,%d,%d", a, b, c);
return 0;
}
最后一个 if 也是要判 a>b,然后交换
#include<stdio.h>
#include<string.h>
int main()
{
int a, b, c, t;
scanf("%d,%d,%d", &a, &b, &c);
if (a > b) { t = a; a = b; b = t;}
if (a > c) { t = a; a = c; c = t;}
if (a > b) { t = a; a = b; b = t;}
printf("%d,%d,%d", a, b, c);
return 0;
}
根据提供的参考资料,没有直接和排序相关的代码。因此无法确定排序代码的具体问题。需要提供排序相关的代码或更多的信息才能帮助解决问题。