C语言怎样给一个数组中的数从大到小排序

Python028

C语言怎样给一个数组中的数从大到小排序,第1张

#include "stdio.h"

int main()

{

int i,j

int a[12]

for(i=1i<=10++i)

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

for(i=1i<10++i)

for(j=ij<=10++j)

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

{

int t=a[i]

a[i]=a[j]

a[j]=t

}

//前十个数的排序

for(i=1i<=10++i)

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

printf("\n")

printf("Input a new number: ")

scanf("%d",&a[11])

for(i=10i>0--i)

if(a[i+1]>a[i])

{

int t=a[i]

a[i]=a[i+1]

a[i+1]=t

}

elsebreak

//11个数的排序

for(i=1i<=11++i)

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

printf("\n")

return 0

}

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

#include<stdio.h>

int main()

{

int i,j,a[10],t

printf("输入数")

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

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

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

{

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

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

t = a[i]

a[i] = a[j]

a[j] = t

}

}

printf("从大到小")

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

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

return 0

}

扩展资料:

代码还可以设计,如下:

#include<stdio.h>

int main()

{

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

for(i=0i<10i++){

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

}

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

for(j=0j<10-ij++){//第一个数比较9次,依次递减

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

t=a[j]

a[j]=a[j+1]

a[j+1]=t

}

}

for(i=0i<10i++){

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

}

return 0

}

}

printf("the sorted numbers:\n")

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

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

printf("\n")

}

参考资料:百度百科-printf

用数组来存放十个数字,使用“冒泡排序”来实现排序。10个数字需进行9轮扫描,每次扫描时比较相邻的二个数,如它们不符合要求的大小关系,就交换它们的位置。第一轮扫描结束时,最大的数就“沉”到最后。于是第二的范围就少了一个数。再进行第二两栖型、第三轮,…——直到第9轮就完成了。最后输出结果。

#include<stdio.h>

int

main()

{

int

a[10],i,j,t

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

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

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

for(i=0i<9i++)

for(j=0j<9-ij++)

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

{

t=a[j]

a[j]=a[j+1]

a[j+1]=t

}

printf("排序以后的数:\n")

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

printf("%d

",a[i])

printf("\n")

system("pause")

return

0

}

如果要从大到小排,只要把上面的交换条件

if(a[j]>a[j+1])换为

if(a[j]<a[j+1])就可以了。