在c语言中比较字符串不能正确比较

img

img


请问是哪里出错了吗,在比较的时候三个两两比较,然后给另一个函数交换,但是最后不能正确得出结果

你的f函数里面的逻辑有问题,应该先保证a > b , a > c, 然后再去取保b > c。因为按照你原来的逻辑:先让a > b, 然后让b > c, 这个时候已经b和c交换了,第三个if想让a > c,但实际效果是让a > b(因为上一步已经交换了)。

if (strcmp(a, b) > 0){
    s(a,b);
}
if (strcmp(a, c) > 0){
    s(a, c);
}
if (strcmp(b, c) > 0) {
    s(b, c);
}

望采纳