c语言题目练习第二天

3:输入三个整数 x,y,z,请把这三个数由小到大输出。

    分析:利用if-else 语句进行比较大小再而进行输出

#include<stdio.h>
 
 int main()
 {
  int a,b,c;
  scanf("%d %d %d",&a,&b,&c);
  if(a>b){
    if(b>c){
        printf("三个数从小到大排序:%d %d %d",c,b,a);
           }
     else if(a>c){
        printf("三个数从小到大排序:%d %d %d",b,c,a);
                  }
          else{
        printf("三个数从小到大排序:%d %d %d",b,a,c);
               }
          }
   else if(b<c){
        printf("三个数从小到大排序:%d %d %d",a,b,c);
                }
        else if(a>c){
            printf("三个数从小到大排序:%d %d %d",c,a,b);
                     }
                else{
                    printf("三个数从小到大排列:%d %d %d",a,c,b);
                    }
    return 0;
 }
   

答案正确但是看起来繁琐复杂下面对比答案

#include <stdio.h>

int main() {
    int x, y, z, t;
    printf("请输入三个数字(逗号隔开):");
    scanf("%d,%d,%d", &x, &y, &z);
    if (x > y) {
        t = x;
        x = y;
        y = t;
    }
    if (x > z) {
        t = z;
        z = x;
        x = t;
    }
    if (y > z) {
        t = y;
        y = z;
        z = t;
    }
    printf("从小到大排序:%d %d %d",x,y,z);
    return 0
}

 将最小值都放在x,较大y,最大z最后直接输出x,y,z 值得学习减少复杂不需要一个一个排列

但是思路新奇想不到从整体来看从三个比较大小包括了所有排列  当输入从三个变成四个或五个时这个方法要省时很多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值