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

news2024/9/24 5:25:08

题目:输入三个整数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来缩进代码,不然现有的编译系统会出错的,切记切记!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/839352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[FlareOn6]FlareBear

前言 apk的逆向&#xff0c;没有壳&#xff0c;但可能做的不是太多&#xff0c;没能想到整个算法的运作原理 分析 搜索flag会发现存在这么一个函数&#xff0c;那么显示flag的时候应该是熊会跳舞显示flag,只要满足熊happy和ecsstatic就可以&#xff0c;happy只要一直存在点击…

集中/本地转发、AC、AP

1.ADSL ADSL MODEM&#xff08;ADSL 强制解调器&#xff09;俗称ADSL猫 ADSL是一种异步传输模式&#xff08;ATM)。ADSL是指使用电话线上网&#xff0c;需要专用的猫&#xff08;Modem)&#xff0c;在上网的时候高频和低频分离&#xff0c;所以上网电话两不耽误&#xff0c;速…

后端进阶之路——万字总结Spring Security与数据库集成实践(五)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ 解决算法&#xff0c;一个专栏就够了★ ★ 架…

K8S系列文章之 一键部署K8S环境

部署的原理是基于自动化部署工具 Ansible 实现的&#xff0c;需要提前安装Ansible 并配置下主机节点环境 1. 安装 Ansible 首先ansible基于python2.X 环境&#xff0c;默认centos都已经安装好了python2环境 // 最好更新下库 // yum update yum install -y epel-release yum i…

ctfshow-web5

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先看到代码&#xff0c;发现要求v1必须是字符串&#xff0c;v2必须是数字&#xff0c;并且对v1和v2的md5弱相等&#xff0c;也就是&#xff0c;只比较字符串开头是否相等&#xff0c;那么就需要找到两个md5开…

Mac系统下使用远程桌面连接Windows系统

一、远程桌面工具 Microsoft Remote Desktop 二、下载地址 https://go.microsoft.com/fwlink/?linkid868963 三、下载并安装 四、添加远程PC PC name:云服务器IP。 User account: 添加系统用户 PC name&#xff1a;远程桌面 IP 地址User account&#xff1a;可以选择是…

RabbitMQ 教程 | 第11章 RabbitMQ 扩展

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

机器学习、人工智能、深度学习三者的区别

目录 1、三者的关系 2、能做些什么 3、阶段性目标 1、三者的关系 机器学习、人工智能&#xff08;AI&#xff09;和深度学习之间有密切的关系&#xff0c;它们可以被看作是一种从不同层面理解和实现智能的方法。 人工智能&#xff08;AI&#xff09;&#xff1a;人工智能是一…

【网络编程·传输层】UDP和TCP的报头

目录 一、端口号划分 二、部分指令 1、pidof&#xff08;用于查看进程id&#xff09; 2、netstat&#xff08;查看网络状态&#xff09; 三、UDP协议 1、UDP协议格式 2、UDP协议如何进行封装、解包、分用 2.1封装、解包 2.2分用 3、UDP协议的特点 3.1UDP协议的特点 …

外部链接跳转到vue项目传递参数实现单点登录

1、问题背景描述&#xff1a; 我有一个困扰了很久项目需求&#xff0c;前台门户用的MVC&#xff0c;前台登录之后需要能点击某个按钮就能进入后台vue开发的前端项目&#xff0c;不需要重新登录。这个需求中mvc项目相对于vue项目来说是外部链接&#xff0c;他要跳转到vue项目&a…

HarmonyOS应用开发的新机遇与挑战

HarmonyOS 4已经于2023年8月4日在HDC2023大会上正式官宣。对广大HarmonyOS开发者而言&#xff0c;这次一次盛大的大会。截至目前&#xff0c;鸿蒙生态设备已达7亿台&#xff0c;HarmonyOS开发者人数超过220万。鸿蒙生态充满着新机遇&#xff0c;也必将带来新的挑战。 HarmonyO…

卷积神经网络实现MNIST手写数字识别 - P1

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;365天深度学习训练营-第P1周&#xff1a;实现mnist手写数字识别&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同…

架构训练营学习笔记:5-3接口高可用

序 架构决定系统质量上限&#xff0c;代码决定系统质量下限&#xff0c;本节课串一下常见应对措施的框架&#xff0c;细节不太多&#xff0c;侧重对于技术本质有深入了解。 接口高可用整体框架 雪崩效应&#xff1a;请求量超过系统处理能力后导致系统性能螺旋快速下降 链式…

mssqlmysql数据库忽略大小写

一、mssql -- 创建数据时指定排序集Latin1_General_CI_AS CREATE DATABASE [数据库名] COLLATE Latin1_General_CI_AS 查询效果&#xff1a; 二、mysql

课程作业-基于Python实现的迷宫搜索游戏附源码

简单介绍一下 该项目不过是一个平平无奇的小作业&#xff0c;基于python3.8开发&#xff0c;目前提供两种迷宫生成算法与三种迷宫求解算法&#xff0c;希望对大家的学习有所帮助。 项目如果有后续的跟进将会声明&#xff0c;目前就这样吧~ 效果图如下所示&#xff1a; 环境…

AP2400 LED汽车摩灯照明电源驱动 过EMC DC-DC降压恒流IC

产品特点 宽输入电压范围&#xff1a;5V&#xff5e;100V 可设定电流范围&#xff1a;10mA&#xff5e;6000mA 固定工作频率&#xff1a;150KHZ 内置抖频电路&#xff0c;降低对其他设备的 EMI干扰 平均电流模式采样&#xff0c;恒流精度更高 0-100%占空比控制&#xff0…

基于Pyqt5+serial的串口电池监测工具

本章&#xff0c;其他的没有&#xff0c;废话没有&#xff0c;介绍一下新开源了一个公司的测试工具&#xff0c;写了差不多三周吧。先来看看界面&#xff1a; 这是一个串口调试界面&#xff0c;使用Pyqt5serial完成。升级功能暂未移入&#xff0c;占一个坑位。 基于serial二次开…

javaAPI(一):String

String的特性 String底层源码 1、String声明为final&#xff0c;不可被继承 2、String实现了Serializable接口&#xff1a;表示字符支持序列化 实现了Comparable接口&#xff1a;表示String可以比较大小 3、String内部定义了final char[] value用于存储字符串 4、通过字面量的…

20天突破英语四级高频词汇——第①天

2&#xfeff;0天突破英语四级高频词汇~第一天加油(ง •_•)ง&#x1f4aa; &#x1f433;博主&#xff1a;命运之光 &#x1f308;专栏&#xff1a;英语四级高频词汇速记 &#x1f30c;博主的其他文章&#xff1a;点击进入博主的主页 目录 2&#xfeff;0天突破英语四级…

CSS基础介绍笔记1

官方文档 CSS指的是层叠样式&#xff08;Cascading Style Sheets&#xff09;地址&#xff1a;CSS 教程离线文档&#xff1a;放大放小&#xff1a;ctrl鼠标滚动为什么需要css&#xff1a;简化修改HTML元素的样式&#xff1b;将html页面的内容与样式分离提高web开发的工作效率&…