b) -6ren">
gpt4 book ai didi

c - 我试图使用 if 语句按升序排列三个 3 数字,但这对于第三个数字不起作用。对此我们能做些什么呢?

转载 作者:行者123 更新时间:2023-11-30 14:49:47 25 4
gpt4 key购买 nike

#include <stdio.h>
int main()
{
int a, b, c, temp;
scanf("%d %d %d", &a, &b, &c);
if (a > b)
{
temp = a;
a = b;
b = temp;
}
else if (b > c)
{
temp = b;
b = c;
c = temp;
}
else if (c > a)
{
temp = c;
c = a;
a = temp;
}
printf("%d %d %d", a, b, c);
return 0;
}

如果我输入 8,6,3,则输出为 6,8,3。它不会改变最后一个数字。我试图使用 if 语句按升序排列三个 3 数字,但这对于第三个数字不起作用。对此可以采取什么措施?

最佳答案

最简单的方法是先找到最小的,然后确保其余两个正确:

int main()
{
int a, b, c, temp;

int ret = scanf("%d %d %d", &a, &b, &c);
if (ret != 3) {
printf("scanf() error\n");
exit(1);
}

// get smallest into a
if ((b < a) && (b < c)) {
temp = a;
a = b;
b = temp;
} else if ((c < a) && (c < b)) {
temp = a;
a = c;
c = temp;
}

// a is smallest, check b and c
if (c < b) {
temp = b;
b = c;
c = temp;
}

printf("%d %d %d", a, b, c);
return 0;
}

关于c - 我试图使用 if 语句按升序排列三个 3 数字,但这对于第三个数字不起作用。对此我们能做些什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49358398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com