C语言 数组元素大小排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 数组元素大小排序相关的知识,希望对你有一定的参考价值。
通过程序实现的功能:
譬如输入一个数组1,4,2,3,9,6,5,8,7
最终输出结果为9,1,8,2,7,3,6,4,5
下面这个有误,求改,或者另外写一个也行
#include <stdio.h>
# define N 100
void fun(int *a,int n)
int i,j,max,min,px,pn,t;
for(i=0;i<n-1;i+=2)
max=min=a[i];
px=pn=i;
for(j=i+1;j<n;j++)
if(max<a[j])
max=a[j];px=j;
if(min>a[j])
min=a[j];pn=j;
if(px!=i)
t=a[i];a[i]=max;a[px]=t;
if(pn==i)pn=px;
if(pn!=i+1)
t=a[i+1];a[i+1]=min;a[pn]=t;
int main()
printf("please input an array:");
int b[N],int i,u,k;
u=0;
for(i=0;i<N;i++)
scanf("%4d",&b[i]);
u++;
if(getchar()=='\n')
break;
printf("the original array is:");
for(k=0;k<u;k++)
printf("%4d",b[k]);
printf("\n");
fun(b,u);
printf("\nthe result is:");
for(k=0;k<u;k++)
printf("%4d",b[k]);
return 0;
#include <stdio.h>
# define N 100
void fun(int *a,int n)
int i,j,max,min,px,pn,t;
for(i=0;i<n-1;i+=2)
max=min=a[i];
px=pn=i;
for(j=i+1;j<n;j++)
if(max<a[j])
max=a[j];px=j;
if(min>a[j])
min=a[j];pn=j;
if(px!=i)
t=a[i];a[i]=max;a[px]=t;
if(pn==i)pn=px;
if(pn!=i+1)
t=a[i+1];a[i+1]=min;a[pn]=t;
int main()
int b[N]=1,4,2,3,9,6,5,8,7;
int i,u,k;
u=9;
printf("the original array is:\\n");
for(k=0;k<u;k++)
printf("%4d",b[k]);
printf("\\n");
fun(b,u);
printf("\\nthe result is:\\n");
for(k=0;k<u;k++)
printf("%4d",b[k]);
return 0;
这里先直接给个从大到小排列的代码吧::
#include <stdio.h># define N 100
void main()
int buff[N];
int i,j,numN,temp;
//输入:
printf("Please input an array: ");
for(i=0;i<N;i++)
scanf("%4d",&buff[i]);
numN=i+1;//输入个数
if(getchar()=='\\n')break;
//显示输入数组:
printf("\\nThe original array is: ");
for(i=0;i<numN;i++)
printf("%d ",buff[i]);
//排序:
for(i=0;i<numN-1;i++)
for(j=i+1;j<numN;j++)
if(buff[i]<buff[j])//如果前者小于后者 则交换
temp=buff[i];
buff[i]=buff[j];
buff[j]=temp;
//排序后输出:
printf("\\n\\nThe result is: ");
for(i=0;i<numN;i++)
printf("%d ",buff[i]);
if(getchar()=='\\n');//暂停一下 enter键继续
希望对你有所帮助
本回答被提问者采纳C语言一维数组冒泡排序
冒泡排序是一种非常经典及简单的算法,常见于处理数组数据(成绩排名、销量排名等数据的处理)。但是难以用一两句话来概括,原理是比较相邻的两个元素的大小,如果第一个元素比第二个元素大或者小 就使它们互换位置,所有元素重复做同样的工作直至最后一对(也就是说你有n个元素就要比较n-1次)。
下面为代码演示:
首先使用随机数创建一个一维数组
排序算法
整体
运行结果
C语言一维数组冒泡排序演示结束
以上是关于C语言 数组元素大小排序的主要内容,如果未能解决你的问题,请参考以下文章