您的位置:

1到5排序c语言,C语言 排序

本文目录一览:

编写一个程序,完成对5个数从大到小的排序,例如输入:1,2,3,4,5,输出的结果为:5,4,3,2,1

#includestdio.h

void main()

{

int d[101],n,m,i,j;

printf("input number:(end with 0)\n");

n=1;

do

{

scanf("%d",d[n]);

n++;

}while(d[n-1]!=0);

for(i=n-2;i0;i--)

for(j=1;ji;j++)

{

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

{

m=d[j];

d[j]=d[j+1];

d[j+1]=m;

}

}

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

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

}

输入为0的时候结束输入

C语言编程求出下面5*5矩阵的所有排列,用数字1-5填满矩阵,每一行每一列不重复,最好能打印出来,急急急

#includestdio.h

main()

{

int i,j;

int a[5][5];

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

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

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

printf("\n");

}

}

C语言--怎样实现输入任意几个数排序

把循环次数改成你想要的数就可以了。

比如上面你的程序,for语句中的i=9,这个9改成你想要的次数。另一种方法,这个次数也作为一个变量从键盘输入,这样适应性相对来说好一些,不用每次都编译程序。

提醒,如果是大批量的输入数据,用键盘逐个输入数据是比较低效和低准确率的方法,通常采用数据文件(比如一个文本文件)的方式。

你能问出这个问题来,说明你对上面的代码还没有理解透彻,好好学习吧。

----------------------------------------------------

对于lz的补充的回答:

我前面说的:另一种方法,这个次数也作为一个变量从键盘输入,这样适应性相对来说好一些,不用每次都编译程序。

但是有一个问题,就是C不支持动态定义数组。解决方法两种:一、定义一个足够大的数组(但有越界的可能,程序里要做判断和控制)。二、使用动态内存分配,可以从根本上解决此问题。

还有一种折中的办法,就是对排序数定义一个宏,程序中的循环都使用这个宏来控制循环,如果排序数量更改了,虽然需要重新编译程序,但是也很好修改,只要改这个宏的数值就可以了。

1-10从小到大排序 C语言

#includestdio.h

#define N 10

void main()

{

int i,j,min,tem,a[N];

printf("请输入十个数字:\n");

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

{

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

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

printf("\n输入的十个数字如下:\n");

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

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

printf("\n");

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

{

min=i;

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

if(a[min]a[j]) min=j;

tem=a[i];

a[i]=a[min];

a[min]=tem;

}

printf("排序后:\n");

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

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

}