彩笔凡 发表于 2024-4-16 21:19:13

求助

有三个数a,b,c,要求按顺序大小输出

FishC 发表于 2024-4-16 21:19:22

你好!要按顺序输出三个数a,b,c,我们可以使用条件语句来比较它们的大小,并进行相应的输出。以下是一个示例代码:

a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
c = int(input("请输入第三个数字:"))

if a <= b <= c:
    print(a, b, c)
elif a <= c <= b:
    print(a, c, b)
elif b <= a <= c:
    print(b, a, c)
elif b <= c <= a:
    print(b, c, a)
elif c <= a <= b:
    print(c, a, b)
else:
    print(c, b, a)

在这里,我们使用`input()`函数让用户输入三个数字,并将其转换为整数类型。然后,我们使用一系列的条件语句(`if`,`elif`和`else`)来比较它们的大小并进行输出。每个条件语句中的条件都是由两个关系运算符连起来的(<=表示小于等于)。根据比较结果,我们分别输出三个数字。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

彩笔凡 发表于 2024-4-16 21:20:10

FishC 发表于 2024-4-16 21:19
你好!要按顺序输出三个数a,b,c,我们可以使用条件语句来比较它们的大小,并进行相应的输出。以下是一个 ...

请用c语言

FishC 发表于 2024-4-16 21:20:22

彩笔凡 发表于 2024-04-16 21:20
请用c语言

当然,以下是使用C语言的示例代码:

#include <stdio.h>

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

    printf("请输入第一个数字:");
    scanf("%d", &a);
    printf("请输入第二个数字:");
    scanf("%d", &b);
    printf("请输入第三个数字:");
    scanf("%d", &c);

    if (a <= b && a <= c) {
      printf("%d ", a);
      if (b <= c) {
            printf("%d %d", b, c);
      } else {
            printf("%d %d", c, b);
      }
    } else if (b <= a && b <= c) {
      printf("%d ", b);
      if (a <= c) {
            printf("%d %d", a, c);
      } else {
            printf("%d %d", c, a);
      }
    } else {
      printf("%d ", c);
      if (a <= b) {
            printf("%d %d", a, b);
      } else {
            printf("%d %d", b, a);
      }
    }

    return 0;
}

该程序首先提示用户输入三个数字,然后使用条件语句将它们按顺序输出。判断逻辑是通过比较大小来确定最小、中间和最大的数字,并相应地进行输出。注意在C语言中使用`scanf`函数读取用户输入,以及使用`printf`函数输出结果。

希望对你有所帮助!如果有任何问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

彩笔凡 发表于 2024-4-16 21:24:51

FishC 发表于 2024-4-16 21:20
当然,以下是使用C语言的示例代码:




c语言数组可以解决吗?

FishC 发表于 2024-4-16 21:25:04

彩笔凡 发表于 2024-04-16 21:24
c语言数组可以解决吗?

是的,你可以使用C语言中的数组来解决这个问题。以下是一个使用数组的示例代码:

#include <stdio.h>

int main() {
    int nums;
    int i, j, temp;

    // 输入三个数字
    for (i = 0; i < 3; i++) {
      printf("请输入第%d个数字:", i + 1);
      scanf("%d", &nums);
    }

    // 冒泡排序按顺序输出
    for (i = 0; i < 2; i++) {
      for (j = 0; j < 2 - i; j++) {
            if (nums > nums) {
                temp = nums;
                nums = nums;
                nums = temp;
            }
      }
    }

    // 输出排序后的结果
    printf("按顺序大小输出结果为:");
    for (i = 0; i < 3; i++) {
      printf("%d ", nums);
    }

    return 0;
}

这段代码使用了冒泡排序算法来按照从小到大的顺序对输入的三个数字进行排序,并输出排序后的结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-4-16 23:57:59

本帖最后由 jackz007 于 2024-4-17 01:54 编辑

#include <stdio.h>

int main(void)
{
      int a , b , c , v1 , v2 , v3                         ;
      printf("输入 3 个数值:")                            ;
      scanf("%d%d%d" , & a , & b , & c)                  ;
      v1 = (a < b && a < c) ? a : (b < a && b < c) ? b : c ; // 找出最小值
      v3 = (a > b && a > c) ? a : (b > a && b > c) ? b : c ; // 找出最大值
      v2 = a + b + c - v1 - v3                           ; // 算出中间值
      printf("%d, %d, %d\n" , v1 , v2 , v3)                ;
}
      编译、运行实况:
D:\\C>g++ -o x x.c

D:\\C>x
输入 3 个数值:88 2 35
2, 35, 88

D:\\C>x
输入 3 个数值:88 35 2
2, 35, 88

D:\\C>x
输入 3 个数值:35 88 2
2, 35, 88

D:\\C>
       采用数组的版本:
#include <stdio.h>

int main(void)
{
      int d , e , i                              ;
      printf("输入 3 个数值:")                            ;
      scanf("%d%d%d" , & d , & d , & d)         ;
      for(i = 0 ; i < 3 ; i ++) e = 0                   ;
      for(e = e = 0 , i = 1 ; i < 3 ; i ++) {
                if(d < d]) e = i                  ; // 找到最小值的索引
                if(d > d]) e = i                  ; // 找到最大值的索引
      }
      e = 3 - e - e                               ; // 算出中间值的索引
      printf("%d, %d, %d\n" , d] , d] , d]) ;
}
页: [1]
查看完整版本: 求助