对数组中的数从大到小进行排列

第一种方法:

1.定义俩个变量,一个用来记录最大的元素的位置,一个用来表示数组中最大的元素。

2.遍历。

3.输出数组。

#include int main() {int a[10]={20,23,12,91,19,36,39,21,52,38};//定义数组 int i,j,k;int temp;//定义变量,表示最大的数组元素for(i=0;i<10;i++){temp=a[i];//假设当前数字为最大值 k=i;//记录最大元素位置for(j=i;jtemp)//如果后续元素中有比前面设定的最大值还大{ temp=a[j];//重新设定最大值k=j;//修正最大元素位置 } } a[k]=a[i];//将最大的数组元素和当前排序次数对应的数组元素互换 a[i]=temp; } for(i=0;i<10;i++)//输出数组 { printf("%d\t",a[i]);//用制表位分隔元素} return 0;}

第二种方法:

该方法使用到了指针,减少了代码量,更加简洁方便。

#include int main(){ int a[10]={20,23,12,91,19,36,39,21,52,38};int i,j,t;int *p=a; //使用指针 for(i=0;i<9;i++) {for(j=0;j<9;j++){if(*(p+j)<*(p+j+1)){ t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}}}for(i=0;i<10;i++) //从大到小输出{ printf("%d\t",*(p+i));}return 0;}

以上是我个人对数组中的数从大到小进行排列的代码编写,希望帮助到有需要的人,也希望觉得还可以的人给个支持,谢谢啦~