逆序排列

数组的逆序排列【arr>arr+1】

特别鸣谢:@搬砖界泰斗这只小狐狸

/*逆序排列*/
#include <stdio.h>
int main(){
 int arr[]={12,23,34,45,43,32,43,45,24};//数组初始化
int sz = sizeof(arr)/sizeof(arr[0]); //sz计算出数组中子级个数
//运算:sizeof()
//arr:总地址byte/一个地址byte==sz
int i,j,max,tmp;
for(i=0;i<= sz-1;i++){
//arr[0]是arr[]里的第一个子级元素,有sz个子级元素,所以退出循环的条件是i<=sz-1?
//这里涉及算法:实际  不取等  更加简洁
//--比如四个数字,1 4 2 3,你只需要第一个数字和第二个比较,第二个数字和第三个比较,第三个数字和第四个比较,三次就好!
	max = i;//max存入i的值
	for(j = i+1;j < sz;j++){
		if(arr[max]<arr[j]){
			max=j;
		}//判断每个子级数之间的大小,保留大的子级数的下标
	}//记录较大的子级数字
	tmp = arr[max];
	arr[max]=arr[i];
	arr[i]=tmp;//调节arr与arr+1的顺序
}//i来控制确定数组里的子级,使得遍历所有子级数
for(i=0;i< sz;i++){
	printf("%d ",arr[i]);
}//输出数组【直接背格式】
return 0;
}

posted @ 2024-09-28 00:17  GJ504b  阅读(11)  评论(0编辑  收藏  举报