如何用c语言编写一个程序,实现按从大到小的顺序排序输出10个数

如何用c语言编写一个程序,实现按从大到小的顺序排序输出10个数,第1张

用选择排序法编写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

源程序以及算法注释如下:

#define _CRT_SECURE_NO_WARNINGS//VS编译环境需要进行宏定义,VC6.0可忽略

#include<stdio.h>//输入输出头文件

int main()

{

int number[10], New_number[10]//定义数组的数据类型为整型

int i, j, m, n, k//定义变量的数据类型为整型

printf("input 10 <int>number:")//文字提示

for (i = 0i <= 9i++)//用循环输入数值给数组number并赋给数组New_number

{

scanf("%d", &number[i])//输入10个整形数字到数组中

New_number[i] = number[i]//数组number元素赋给数组New_number

}

for (n = 0n <= 8n++)//要进行(10-1)组比较

for (j = 0j <= 8 - nj++)//每组进行(10减第几组)次比较

{

if (number[j] >number[j + 1])//比较大小并将小的赋给前面的数组

{

k = number[j]//将相对较大的元素赋值给中间元素

number[j] = number[j + 1]//将相对较小的元素送达前面一个位置

number[j + 1] = k//将中间变量元素送给后面一个位置

}

if (New_number[j] <New_number[j + 1])//比较大小并将大的赋给前面的数组

{

k = New_number[j + 1]//将相对较小的元素赋值给中间元素

New_number[j + 1] = New_number[j]//将相对较大的元素送达前面一个位置

New_number[j] = k//将中间变量元素送给后面一个位置

}

}

printf("min-->max:\n")//文字提示

for (m = 0m <= 9m++)//依次从小到大输出

printf("%d ", number[m])//输出元素

printf("\n")

printf("max-->min:\n")//文字提示

for (m = 0m <= 9m++)//依次从大到小输出

printf("%d ", New_number[m])//输出元素

printf("\n")

return 0

}

程序运行结果如下:

扩展资料:

其他简单实现程序:

#include<stdio.h>

int main()

{

int a[10]={0}

int i,j,temp

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

{

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

}

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

{

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

{

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

{

temp = a[j]

a[j] = a[j+1]

a[j+1] = temp

}

}

}

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

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

return 0

}

采用冒泡法降序排列10个输入数据的程序如下:

先定义一个长度为10的数组a[],10个数据由键盘输入,从第一个数开始,两两一组进行判断,因为要求是降序排列,因此将两个数中小的向后移动,每个数要比较的次数为9-数的下标。比较完成后将数组依次输出。

输入10个数据,程序运行结果:

扩展资料:

冒泡排序算法的原理如下:

1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3、针对所有的元素重复以上的步骤,除了最后一个。

4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11581492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存