A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

# include <stdio.h>
//把一个数组按从大到小的顺序排序
//按照选择排序的方法实现
void arrChoose(int *arr,int n){
    int arrMax,temp,k;
    for (int i=0; i<n-1; i++) {
             arrMax=arr[i];
        for (int j=i+1;j<n;j++){
            if (arrMax<arr[j]){
                arrMax=arr[j];
                k=j;
            }
        }
        temp=arr[k];
        arr[k]=arr[i];
        arr[i]=temp;
    }
    printf("数组重新排序后\n");
    for (int i=0; i<n; i++) {
        printf("a[%d]=%d\n",i,arr[i]);
    }
}
int main (){
    int arr[]={1,14,35,3,46,5,6,89,33,67,36};
    int m=sizeof(arr)/sizeof(int);
    printf("数组排序前\n");
    for (int i=0; i<m; i++) {
        printf("a[%d]=%d\n",i,arr[i]);
    }
    arrChoose(arr,m);
    return 0;
}

3 个回复

正序浏览
用了指针思想啊
回复 使用道具 举报
选择排序的话,应该是角标的问题
回复 使用道具 举报
有点难,看不懂,你思维很复杂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马