C语言案例 按序输出三个整数-02

题目:输入三个整数a,b,c,按从小到大的顺序输出

步骤一:定义程序的目标

       编写一个C程序,随机输入三个整数,按照从小到大的顺序输出。

步骤二:程序设计

        整个程序由三个模块组成,第一个为scanf输入函数模块,第二个为循环for模块,第三个为if判断模块。scanf输入模块用于随机输入三个整数,而for模块用于循环输入整数,简化代码,if模块用于判定三个整数的大小并进行数据排序。

编写代码:

#include<stdio.h>

int main(){

    int a,b,c,d; //定义四个变量,其中一个变量是用于交换

    printf("请输入第一个数:\n");

    scanf("%d",&a); //使用scanf输入随机变量

    printf("请输入第二个数:\n");

    scanf("%d",&b);

    printf("请输入第三个数:\n");

    scanf("%d",&c);

    // 使用if语句进行判定整数的大小,不符合条件的使用第三方变量进行变换位置

    if(a>b){

        d=a;

        a=b;

        b=d;

    }

    if(a>c){

        d=a;

        a=c;

        c=d;

    }

    if(b>c){

        d=b;

        b=c;

        c=d;

    }

    printf("这个三个数字从小到大的顺序为:%d<%d<%d\n",a,b,c); //输入三个数字的排序结果

}

效果:

代码优化

代码修复部分

1.使用循环方式添加随机整数,方便后续代码的扩展;

2.使用for循环+scanf函数方式提高代码可读性,代码更加简洁明了;

3.添加新的变量e数组,简化代码量;

#include<stdio.h>

int main(){

    int a,b,c,d,i,e[3];

    for(i=0;i<3;i++){  //使用for循环进行代码复用给三个变量进行赋值

        printf("请输入第%d个整数:\n",i+1);

        scanf("%d",&e[i]); //使用数组存储数据

    }

    //将随机输入的数据赋值给a,b,c三个变量

    a=e[0];

    b=e[1];

    c=e[2];

     // 使用if语句进行判定整数的大小,不符合条件的使用第三方变量进行变换位置

    if(a>b){

        d=a;

        a=b;

        b=d;

    }

    if(a>c){

        d=a;

        a=c;

        c=d;    

    }

    if(b>c){

        d=b;

        b=c;

        c=d;

    }

printf("这个三个数字从小到大的顺序为:%d<%d<%d\n",a,b,c); //输入三个数字的排序结果

}

效果:

总结

       这个C语言案例要实现很容易,但是在进行代码编写的时候,我们应该尽可能做到代码简化,而且这个代码是方便我们后续维护的。在不同程序员设计程序时,所考虑到的问题具有较大差异,比如,在优化的for模块代码中,肯定有人会想着直接使用scanf函数带三个参数就可以了,这样代码更加简洁。不得不说,这个想法不错,也的确做到了代码简化,但是有一个问题,若后续比较的整数数目发生改变了呢?添加一个两个整数很好解决,但是添加十几个的话,这个就麻烦了吧。还有,若是自定义添加整数让程序自主排序呢?这个就涉及较高深的程序思想了,有兴趣的家人们可以思考一下。好了,我们在下一个章节再见,加油!

PS:在编写程序时,一定要记得使用tab来缩进代码,不然现有的编译系统会出错的,切记切记!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公子绝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值