c语言数组的排序函数 c语言数组排序方法

C语言:输入5个数,用调用函数的方法,从小到大排序 用简单点的

#includestdio.h

创新互联建站从2013年开始,是专业互联网技术服务公司,拥有项目做网站、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元万全做网站,已为上家服务,为万全各地企业和个人服务,联系电话:18982081108

void sort(float *a, int n)

{

int i,j,tmp;

for(i=0; in-1; i++)

for(j=0; jn-i-1; j++)

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

{

tmp = a[j];

a[j] = a[j+1];

a[j+1] = tmp;

}

}

void main()

{

float a[5];

int i;

printf("请输入五个数(逗号隔开):");

scanf("%f,%f,%f,%f,%f",a[0],a[1],a[2],a[3],a[4]);

sort(a,5);

printf("排序后为:");

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

printf("%.2f ",a[i]);

printf("\n");

}

或者三个数的。

void sort(int *a, int *b, int *c)

{

int tmp;

if(*a*b){

tmp = *b;

*b = *a;

*a = tmp;

}

if(*a*c){

tmp = *c;

*c = *a;

*a = tmp;

}

if(*b*c){

tmp = *c;

*c = *b;

*b = tmp;

}

return;

}

扩展资料:

C语言中没有预置的sort函数。如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序。

一、可以编写自己的sort函数。

如下函数为将整型数组从小到大排序。void sort(int *a, int l)//a为数组地址,l为数组长度。

{  

int i, j;  

int v;    //排序主体

for(i = 0; i l - 1; i ++)      

for(j = i+1; j l; j ++)

 

{          

if(a[i] a[j])//如前面的比后面的大,则交换。

     

{

         

v = a[i];

         

a[i] = a[j];

         

a[j] = v;

     

}

 

}

}

对于这样的自定义sort函数,可以按照定义的规范来调用。

二、C语言有自有的qsort函数。

功 能: 使用快速排序例程进行排序。头文件:stdlib.h

原型:

void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));

参数:

1、待排序数组首地址。

2、数组中待排序元素数量。

3、各元素的占用空间大小4 指向函数的指针,用于确定排序的顺序,这个函数必须要自己写比较函数,即使要排序的元素是int,float一类的C语言基础类型。

C语言一维数组排序

今天为嘛总是见到最后这句话……

初学者……冒泡呗,两个数据都冒。两个for循环,两趟比较,每趟把最大的放最前面(或者最小的放最后面,我感觉都一样)交换的时候,把两个都同时交换了就好……

c语言 编写一个排序函数,实现对主函数中数组的升序排序.

经典的两个排序:

(1)选择排序

#include stdio.h

main()

{

int a[5];

int i,j,k,t;

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

scanf("%d",a[i]);

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

{

k=i;

for(j=i+1;j5;j++)

if(a[k]a[j])

k=j;

if(k!=i)

{

t=a[k];

a[k]=a[i];

a[i]=t;

}

}

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

printf("%3d",a[i]);

}

(2)冒泡排序

#include stdio.h

main()

{

int a[5];

int i,j,t;

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

scanf("%d",a[i]);

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

for(j=0;j4-i;j++)

{

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

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

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

printf("%3d",a[i]);

}

C语言编写函数,数组排序

void Swap(int *a, int *b)

{

int tmp = *a;

*a = *b;

*b = tmp;

}

void Selectsort(int *arr, int sz)

{for (int end=sz-1; end=0; end--)

{

int max = end;

int i;

for ( i = 0; i = end; i++)//选出最大下标

{

if (arr[i] arr[max])

{

max = i;

}

}

Swap(arr, arr[max]);

}

}

int main()

{

int arr[5] = { 1, 3, 2, 5, 4 };

int sz = sizeof(arr) / sizeof(arr[0]);

for (int i = 0; i = sz - 1; i++)

{

scanf("%d", arr[i]);

}

Selectsort(arr, sz);

for (int i = 0; i = sz - 1; i++)

{

printf("%d ", arr[i]);

}

system("pause");

return 0;

}

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--gt;m域宽,打印出来以后,在控制台上,显示m位;

如果要打印的数的位数如果超过我们设定m则原样输出;

如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。


本文名称:c语言数组的排序函数 c语言数组排序方法
本文来源:http://scjbc.cn/article/dodpsoo.html

其他资讯