c语言三值排序,C语言三种排序

本文目录一览:

用C语言比较三个数的大小,并按照从大到小排序

#include stdio.h

#include math.h

int main(void)

{

int a,b,c;

printf(“请输入任意三个整数a,b,c:”);

scanf(“%d%d%d”,a,b,c);

int s;

if(ab)s=a,a=b,b=s;//比较a,b大小,通过赋值,使得ab 。此语句目的:ab

if(ac)s=a,a=c,c=s;//进一步比较a,c大小,通过赋值得出最小值,并赋给a; 此语句目的:ac

if(bc)s=b,b=c,c=s;//最后比较出b,c中的较大值。

printf(“从大到小的顺序依次是:%d%d%d”,c,b,a);

return 0;

}

如何用函数实现三个数的排序(用的是C语言)

一:全局变量

#include stdio.h

int a,b,c;  //定义三个全局变量

void sort()  //不需要参数

{

    int t;

    if(ab)

    {

        t=a;a=b;b=t;

    }

    if(bc)

    {

        t=b;b=c;c=t;

    }

    if(ab)

    {

        t=a;a=b;b=t;

    }

}

int main()

{

    printf(“输入:”);

    scanf(“%d%d%d”,a,b,c);

    sort();

    printf(“排序:%d  %d  %d\n”,a,b,c);

    return 0;

}

二:指针

#include stdio.h

void sort(int *a, int *b, int *c) //参数传递方式:地址传递

  int t;

  if(*a*b) 

  {

      t=*a;*a=*b;*b=t;

  }

  if(*b*c)

  {

      t=*b;*b=*c;*c=t;

  }

  if(*a*b) 

  {

      t=*a;*a=*b;*b=t;

  }

}

int main()

{

    int a,b,c;

    printf(“输入:”);

    scanf(“%d%d%d”,a,b,c);

    sort(a,b,c);               //把地址作为参数

    printf(“排序:%d  %d  %d\n”,a,b,c);

    return 0;

}

c语言编写程序,任意三个数,由大小到排序,源代码如何写!

思路:任意三个数按从大到小顺序输出,可以先求出三个数中的最大值和最小值,三个数的和减去最大值和最小值的差就是中间数,接着依次输出。

参考代码:

#include “stdio.h”

int main()

{

int a,b,c,max,min;

scanf(“%d%d%d”,a,b,c);

max=ab?a:b;

min=ab?a:b;

if(cmax) max=c;

if(minc) min=c;

printf(“从大到小排序:%d %d %d\n”,max,a+b+c-max-min,min);       

}

/*

运行结果:

2 1 3

从大到小排序:3 2 1

*/

c语言三种排序

常用的c语言排序算法主要有三种即冒泡法排序、选择法排序、插入法排序。

一、冒泡排序冒泡排序:

是从第一个数开始,依次往后比较,在满足判断条件下进行交换。代码实现(以降序排序为例)

#includestdio.h

int main()

{

int array[10] = { 6,9,7,8,5,3,4,0,1,2 };

int temp;

for (int i = 0; i 10; i++)

{//循环次数

for (int j = 0; j 10 – i-1; j++)

{

if (array[j] array[j+1])

{//前面一个数比后面的数大时发生交换 temp = array[j];

array[j] = array[j+1];

array[j + 1] = temp;

}

}

} //打印数组 for (int i = 0; i 10; i++) printf(“%2d”, array[i]); return 0;}}

二、选择排序以升序排序为例:

就是在指定下标的数组元素往后(指定下标的元素往往是从第一个元素开始,然后依次往后),找出除指定下标元素外的值与指定元素进行对比,满足条件就进行交换。与冒泡排序的区别可以理解为冒泡排序是相邻的两个值对比,而选择排序是遍历数组,找出数组元素与指定的数组元素进行对比。(以升序为例)

#includestdio.h

int main()

{

int array[10] = { 6,9,7,8,5,3,4,0,1,2 };

int temp, index;

for (int i = 0; i 9; i++) {

index = i;

for (int j = i; j 10; j++)

{

if (array[j] array[index])

index = j;

}

if(i != index)

{

temp = array[i];

array[i] = array[index];

array[index] = temp;

}

for(int i=0;i10:i++)

printf(“%2d”array[i])

return 0;

}

三、快速排序

是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

void QuickSort(int* arr, int size)

{

int temp, i, j;

for(i = 1; i size; i++)

for(j=i; j0; j–)

{

if(arr[j] arr[j-1])

{

temp = arr[j];

arr[j]=arr[j-1];

arr[j-1]=temp;

}

}

}

C语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出

具体操作方法如下:

#includestdio.h

int main(void)

{int a,b,c,t;

printf(“请输入三个数”);

scanf(“%d%d%d”,a,b,c);

if(ab)

{t=a;a=b;b=t;}

if(bc)

{t=b;b=c;c=t;}

if(ab)

{t=a;a=b,b=t;}

printf(“从大到小:%d %d %d”,a,b,c);

system(“pause”);

return 0;}

注意:中间的t=a;a=b;b=t,就是交换a和b的位置,总是把大的换到前面来。

扩展资料:

c语言任意输入5个数,并按从大到小顺序输出的方法如下:

#include stdio.h

#include stdlib.h

int main()

{int a[5];

int i,j,k;

for(i=0;i=4;i++)

{scanf(“%d”,a[i]);}

for(i=0;i=4;i++){

for(j=0;j=4;j++)

{if(a[i]a[j])

{k=a[i]; a[i]=a[j]; a[j]=k;}}}

printf(“排序结果是:\n”);

for(i=0;i=4;i++)

{  printf(“%d\t”,a[i]);

}return 0;

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/303556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-31 11:50
下一篇 2024-12-31 11:50

相关推荐

  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • Python程序的三种基本控制结构

    控制结构是编程语言中非常重要的一部分,它们指导着程序如何在不同的情况下执行相应的指令。Python作为一种高级编程语言,也拥有三种基本的控制结构:顺序结构、选择结构和循环结构。 一…

    编程 2025-04-29
  • Python语言由荷兰人为中心的全能编程开发工程师

    Python语言是一种高级语言,很多编程开发工程师都喜欢使用Python语言进行开发。Python语言的创始人是荷兰人Guido van Rossum,他在1989年圣诞节期间开始…

    编程 2025-04-28
  • Python语言设计基础第2版PDF

    Python语言设计基础第2版PDF是一本介绍Python编程语言的经典教材。本篇文章将从多个方面对该教材进行详细的阐述和介绍。 一、基础知识 本教材中介绍了Python编程语言的…

    编程 2025-04-28
  • Python语言实现人名最多数统计

    本文将从几个方面详细介绍Python语言实现人名最多数统计的方法和应用。 一、Python实现人名最多数统计的基础 1、首先,我们需要了解Python语言的一些基础知识,如列表、字…

    编程 2025-04-28

发表回复

登录后才能评论