c语言函数数字排序 c语言怎么用函数实现排序

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

#includestdio.h

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名网站空间、营销软件、网站建设、和平网站维护、网站推广。

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语言数字排序

输入scanf是用的变量地址

x

y

z

输出时,是用的变量x,

y,

z

所以sort3要改变这3个变量地址(指针)指向的值

#include

stdio.h

void

sort3(double

*x,

double

*y,

double

*z);

int

main(int

argc,

char

*argv[]){

double

x,y,z;

if(scanf("%lf

%lf

%lf",x,y,z)==3){

sort3(x,y,z);

printf("%lf\n%lf\n%lf\n",x,y,z);

}else{

fprintf(stderr,"Error:

Incorrect

format\n");

}

return

0;

}

void

sort3(double

*x,

double

*y,

double

*z){

double

a

=

*x,

b

=

*y,

c

=

*z;

printf("a:%f

b:%f

c:%f\n",a,

b,

c);//testing

if(*x

*y)

{

a

=

*y;

b

=

*x;

}

if(c

a)

{

*x

=

c;

*y

=

a;

*z

=

b;

}

else

if(c

b)

{

*x

=

a;

*y

=

c;

*z

=

b;

}

else

{

*x

=

a;

*y

=

b;

*z

=

c;

}

printf("sorted

numbers:\n");//testing

printf("%f

%f

%f\n",*x,

*y,

*z);//testing

}

C语言用函数写个代码来给数字大小序号排序

#includestdio.h

#define N 100

void paixu(int *, int *, int);//声明函数

int main()

{

int a[N],c[N];

int i,n=0;

printf("请输入n个整数:");

for(i=0;;i++)

{

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

n++;

if(getchar()=='\n')

break;

}

paixu(a, c, n);//调用函数,数组只需给出数组名

return 0;

}

void paixu(int a[N],int c[N], int n)

{

int i,j,s=0;

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

{

c[i]=0;

}

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

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

{

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

c[i]=1;

}

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

{

s=1;

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

{

if(c[j]==0a[i]a[j])

{

s++;

}

}

printf("%d ",s);

}

}

如何用c语言实现输入一些数字,按照从大到小排序输出?

用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:

#includestdio.h

int main()

{

int i,j,a[10],t;

printf("输入数");

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

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

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

{

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

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

t = a[i];

a[i] = a[j];

a[j] = t;

}

}

printf("从大到小");

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

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

return 0;

}

扩展资料:

代码还可以设计,如下:

#includestdio.h

int main()

{

int a[10],i,j,t;//定义数组;

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

scanf("%d",a[i]);//给数组赋值;

}

for(i=0;i9;i++)//10个数,进行9轮比较;

for(j=0;j10-i;j++){//第一个数比较9次,依次递减;

if(a[j]a[j+1]) {//交换值;

t=a[j];

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

a[j+1]=t;

}

}

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

printf("%d\n",a[i]);//输出数组的值;

}

return 0;

}

}

printf("the sorted numbers:\n");

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

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

printf("\n");

}

参考资料:百度百科-printf


网站名称:c语言函数数字排序 c语言怎么用函数实现排序
文章转载:http://scyanting.com/article/dojpheo.html