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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int arr[10]={40000,122,222,344,4477,55,64,7,899,911};
    //求数组的长度
    int len = sizeof(arr)/sizeof(int);
    printf("--数组排序前--\n");
    for (int i=0; i<len; i++) {
        printf("%d\t",arr[i]);
        
    }
   
    printf("\n---排序过程进行中---\n");
   
    //定义交换数组的媒介
    int temp = 0;

   
    //定义用来存放最大数组元素
    int max = 0;

    for (int i=0; i<len-1; i++) {
        //第 i 次寻找最大数
        // 假定每次都是i个数为最大数
        int indexNum = 0;
        max = arr[0];
        printf("第%d次比较,假定最大值:a[0]=%d\n",i+1,arr[0]);
        
        
        for (int j=i+1; j<len; j++) {
            
            //遍历数组,寻找最大数
            if (max<arr[j-i]) {
                max = arr[j-i];
                //设定交换数组元素下标标志
                indexNum = j-i;

            }
            printf("被比较的元素:");
            printf("arr[%d]=%d\t",j-i,arr[j-i]);
        }
        printf("\n");
        
        //最大值与假定值交换
       // if (flag==1)
        {
            printf("arr[%d]= %d",len-1-i,arr[len-1-i]);
            printf("与arr[%d]=%d交换\n",indexNum,arr[indexNum]);
            temp = arr[len-1-i];
            arr[len-1-i] = arr[indexNum];
            arr[indexNum] = temp;
        }
        

        
        
        printf("筛选最大值:arr[%d]=%d\t",indexNum,arr[len-1-i]);
        printf("\n交换后arr[%d]=%d\t",len-1-i,arr[len-1-i]);
        printf("与arr[%d]=%d\n",indexNum,arr[indexNum]);
        printf("\n\n");
        
        //把下标标志清零
        indexNum = 0;
    }
    printf("\n--数组排序后--\n");
    for (int i=0; i<10; i++) {
        printf("%d\t",arr[i]);
        
    }
    printf("\n");
   
    return 0;
}

1 个回复

正序浏览
呵。。。。。。。。。阿。aaa。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马