您的位置:

数的排序c语言,n个数排序c语言

本文目录一览:

C语言四个数由大到小排列

可以将四个数先存到数组中,然后进行插入排序。

一、算法设计:

1、输入4个数;

2、使用任意方法进行排序;

3、输出结果。

二、算法优化:

如果选择插入排序,那么可以在输入过程中,同时完成排序操作,减少一次循环,提高效率。

三、参考代码:

#include stdio.h

int main()

{

    int i,j,a[4],n;

    for(i = 0; i  4; i++)//循环四次

    {

        scanf("%d",n);//输入一个数,并存在n中。

        for(j = i-1; j=0; j--)//插入排序,查找要插入的位置。

        {

            if(a[j]=n) break;

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

        }

        a[j+1]=n;//插入n值。

    }

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

        printf("%d ", a[i]);//输出结果。

    return 0;

}

c语言排序的方法

排序主要分为以下几种。

1.冒泡排序:通过循环比较前后数的大小进行交换。最后使得数组有序。

2.快速排序:首先将第一个数作为一个基准,然后循环,将前半部分大于该数的与后半部分小于该数的进行交换,使得以该数为分界线,前面的小于该数,后面的大于该数,然后分前后两部分继续。

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

}