C语言 | 三个整数的排序_三个整数排序c语言-程序员宅基地

技术标签: C/C++  

1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!

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

【方法一】这是C语言教程里常出现的一道题。处理方法是:假设最小的数为x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,最后再比较y与z的值。

示例程序:

#include <stdio.h>
 
int main(void)
{
    int x,y,z,t;
    printf("\n请输入三个正整数:\n");
    scanf("%d %d %d", &x, &y, &z);
    if (x > y) 
  { 
    /*交换x,y的值*/
        t = x;
    x = y;
    y = t;
    }
    if(x > z) 
  { 
    /*交换x,z的值*/
        t = z;
    z = x;
    x = t;
    }
  
    if(y > z) 
  { 
    /*交换z,y的值*/
        t = y;
    y = z;
    z = t;
    }
    printf("从小到大排序: %d %d %d\n",x,y,z);
  
  return 0;
}

程序输出结果如:

【方法二】假如题目给的限定条件不是3个数,而是很多个数呢?不能再用方法一依次罗列出来进行比较了吧。这时可使用一些排序算法(如冒泡排序、快速排序、选择排序等)。

冒泡排序程序示例:

#include <stdio.h>

// 函数声明
void swap(int array[], int i, int j);
void BubbleSortSmallToBig(int array[], int len);

int main(void)
{
  int a[3];
  printf("\n请输入三个正整数:\n");
  scanf("%d %d %d", &a[0], &a[1], &a[2]);
  BubbleSortSmallToBig(a,3);
  printf("从小到大排序: %d %d %d\n",a[0],a[1],a[2]);
  return 0;
}

//数组内元素交换
void swap(int array[], int i, int j)
{
  int temp = array[i];
  array[i] = array[j];
  array[j] = temp;
}

//冒泡排序:从小到大排序
void BubbleSortSmallToBig(int array[], int len) // O(n*n)
{
  int i = 0;
  int j = 0;
  int temp=0;
  for(i = 0; i < len; i++) //
  {
    for(j = len-1; j > i; j--)
    {
      if( array[j] < array[j-1] )
      {
        swap(array, j, j-1);
      }
    }
  }
}

这是一道常见的排序编程练习题。整数的数目小于等于三个时可用一般的比较方法。当排序的整数个数比较多时可以使用一些排序算法。每天进步一点点,关注小编,每天和小编一起打卡学习吧!

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhengnianli/article/details/106684192

智能推荐

[LGOJ3950]部落冲突——[LCT]_lgoj是什么-程序员宅基地

文章浏览阅读259次。【题目描述】 在一个叫做TravianTravianTravian的世界里,生活着各个大大小小的部落。其中最为强大的是罗马、高卢和日耳曼。他们之间为了争夺资源和土地,进行了无数次的战斗。期间诞生了众多家喻户晓的英雄人物,也留下了许多可歌可泣的动人故事。其中,在大大小小的部落之间,会有一些道路相连,这些道路是TravianTravianTravian世界里的重要枢纽,简单起见,你可以把这些..._lgoj是什么

centos防火墙启用、关闭、禁用或开启端口-程序员宅基地

文章浏览阅读1.2k次。出处 [url]http://www.linuxidc.com/Linux/2012-06/63111.htm[/url]防火墙的基本操作命令:查询防火墙状态:[root@localhost ~]# service iptables status 停止防火墙:[root@localhost ~]# service iptables stop 启动防火墙..._centos6.6启用某一个端口

【Java多线程】JUC之并发容器—深入剖析并发队列ArrayBlockingQueue(二)_arrayblockingqueue出队后没有重新移动元素-程序员宅基地

文章浏览阅读1.6k次。**ArrayBlockingQueue**:由`数组`实现的`有界阻塞队列`,在初始化时必须指定容器大小,按照`FIFO`的方式存储元素。内部使用ReentrantLock和Condition实现,支持公平锁和非公平锁。- 队列的容量一旦在构造时指定就无法更改- 插入元素时,在队尾进行;删除元素时,在队首进行;- 队列满时,写入元素会阻塞线程;队列空时,移除元素也会阻塞线程;- 支持公平/非公平策略,默认为非公平策略。_arrayblockingqueue出队后没有重新移动元素

一、Centos安装opencart详细教程步骤_opencart怎么链接服务器-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏9次。一、购买腾讯云服务器1、去到腾讯云官网:https://cloud.tencent.com/product,点击“产品”->"云服务器“2、点击“立即选购“3、选择对应的服务器配置4、设置服务器的安全规则,点击“下一步:确定配置信息”5、确定配置信息,然后点击“立即购买”6、如果商品信息不合适可以点击“返回重新选择”,如果确定没问题则点击“提交订单”7、提交订单后进行付款8、购买后在控制台的云服务里面的“实例”可以看到购买到的云服务器以._opencart怎么链接服务器

如果你恨一个程序员,忽悠他去做iOS开发_如果你讨厌一个前端,就忽悠他去学ios开发-程序员宅基地

文章浏览阅读494次。如果你恨一个程序员,忽悠他去做iOS开发。不管他背景是cobel还是 java,送他一本iOS开发的书。这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛。这叫舍不得孩子套不着狼,谁叫你恨他呢。然后你就会发现他没事会琢磨一下在虚拟机里运行一下mac OSX。Mac高大上啊,一用就上瘾。慢慢的,你发现他不再满足虚拟机了。程序员嘛,一般都对性能敏感的。他开始琢磨黑苹果了。这_如果你讨厌一个前端,就忽悠他去学ios开发

node.js中mysql批量更新的三种方法_node mysql批量更新-程序员宅基地

文章浏览阅读8.9k次,点赞8次,收藏32次。在文章开始之前,我们先说下node.js中的mysql批量插入的方法,我们可以使用如下方法批量插入:var mysql = require('mysql')var values = [ [1, 'hu', 2], [2, 'ke', 0], [3, 'yi', 1]]var connection = mysql.createConnection({ host: 'loca..._node mysql批量更新

随便推点

牛客算法题——NC15553 数学考试【所用算法:前缀和】_代码算法题目nc是什么-程序员宅基地

文章浏览阅读201次,点赞2次,收藏4次。链接:https://ac.nowcoder.com/acm/problem/15553来源:牛客网题目描述今天qwb要参加一个数学考试,这套试卷一共有n道题,每道题qwb能获得的分数为ai,qwb并不打算把这些题全做完,他想选总共2k道题来做,并且期望他能获得的分数尽可能的大,他准备选2个不连续的长度为k的区间,即[L,L+1,L+2,…,L+k-1],[R,R+1,R+2,…,R+k-1](R >= L+k)。输入描述:第一行一个整数T(T<=10),代表有T组数据接下来一行_代码算法题目nc是什么

Win7、Win10中Protel99se不能加载库文件解决方法_protel99 se在win10无法pcb添加库的详细解决办法-程序员宅基地

文章浏览阅读6.4k次,点赞4次,收藏10次。Win7以后系统中Protel99se不能加载库文件解决方法在win7下安装Protel99se会出现无法添加原理图库,元件库的情况。如图,提示“file not recognized”。方法二:利用原理图Find Component功能:首先,添加原理图库,在**.sch文件中点击“Find”(下图左)在“Path”中找到存放设计的文件夹,点击“Find now”(下图右)再点击“close”即可;2)PCB库的添加如果在C:\Windows下找不到Advpcb_protel99 se在win10无法pcb添加库的详细解决办法

java生成随机数_用java生成一个随 机整数数 组,共10个元 素,每个元素的值在0-99之间。先输-程序员宅基地

文章浏览阅读1.4k次。一、利用Math.Random()方法来生成随机数。在Java语言中生成随 机数相对来说比较简单,因为有一个现成的方法可以使用。在Math类中,Java语言提供了一个叫做random的方法。通过这个方法可以让系统产生随机 数。不过默认情况下,其产生的随机数范围比较小,为大于等于0到小于1的double型随机数。虽然其随机数产生的范围比较小,不能够满足日常的需求。如 日常工作中可能需要产生整_用java生成一个随 机整数数 组,共10个元 素,每个元素的值在0-99之间。先输

微信扫码授权到登录网页,中间究竟发生了什么?_微信扫码授权登录-程序员宅基地

文章浏览阅读1.3k次。在微信开放平台进行配置和申请,获得,配置好自己的回调URI根据拿到的数据,配上指定的参数得到二维码的URL微信SDK在二维码页面进行15s一次轮询检测,对于不同的状态有不同的状态码:如果没有扫码:状态码为408,且code为空如果扫码既不接受也不拒绝授权:状态码为404,且code为空如果扫码但是拒绝授权:状态码为403,且code为空如果扫码并且同意授权:状态码为405,返回一个code微信SDK检测到状态码和code后,进行对之前配置的回调URI的重定向,带上code。_微信扫码授权登录

R语言环境下MaxEnt模型的优化策略与物种分布模拟_如何在r中进行maxent-程序员宅基地

文章浏览阅读1.1k次,点赞18次,收藏31次。在生态学研究中,物种分布模拟是一项至关重要的任务。它有助于我们理解物种与环境之间的复杂关系,预测物种在气候变化或人类活动影响下的潜在分布变化。近年来,随着计算机技术的不断发展,基于机器学习的物种分布模拟方法逐渐成为研究热点。其中,MaxEnt模型作为一种广泛应用的物种分布预测工具,其准确性和稳定性得到了广泛认可。而R语言,作为一种强大的统计分析和数据可视化工具,为MaxEnt模型的应用提供了便捷的平台。MaxEnt模型基于最大熵原理,通过整合环境变量和物种分布数据,构建物种分布的概率模型。_如何在r中进行maxent

NAPI 提供回调_napi 函數回調-程序员宅基地

文章浏览阅读297次。5.因为要保持生命周期,需要做持久化。4.把callback对象给JS。1.创建callback对象。前置:声明一下d.ts。_napi 函數回調

推荐文章

热门文章

相关标签