广东工业大学anyview数据结构参考答案及算法解析

需积分: 26 8 下载量 185 浏览量 更新于2023-12-27 7 收藏 203KB DOC 举报
a, int b, int c) { int temp; if (a < b) { temp = a; a = b; b = temp; } if (a < c) { temp = a; a = c; c = temp; } if (b < c) { temp = b; b = c; c = temp; } printf("非递增顺序为:%d %d %d", a, b, c); } /**********【解析】***********/ 这道题要求写一个算法,对给定的三个整数a,b和c进行交换操作,使其变成非递增的顺序。首先,我们需要明白什么是非递增的顺序,即a≥b≥c。我们可以通过比较a和b的大小关系,如果a小于b,则交换a和b的值;然后再比较a和c的大小关系,如果a小于c,则交换a和c的值;最后再比较b和c的大小关系,如果b小于c,则交换b和c的值。这样就可以保证a≥b≥c,即非递增的顺序。最后输出结果即可。 /**********【代码】***********/ void Descend(int a, int b, int c) { int temp; if (a < b) { temp = a; a = b; b = temp; } if (a < c) { temp = a; a = c; c = temp; } if (b < c) { temp = b; b = c; c = temp; } printf("非递增顺序为:%d %d %d", a, b, c); } /**********【测试】***********/ int main() { int a = 5, b = 8, c = 3; Descend(a, b, c); return 0; } /**********【运行结果】***********/ 非递增顺序为:8 5 3 /**********【结论】***********/ 通过以上算法,我们成功实现了对三个整数进行非递增排序的操作。这种算法在实际应用中可能会有一些局限性,比如只能对三个数进行排序,而对于更多的数可能就不太适合。但是在特定的场景中,这种算法仍然具有一定的参考价值。需要根据具体的情况来选择合适的算法来解决问题。