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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jusive 中级黑马   /  2015-10-2 12:38  /  677 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
//实现下标法排序
*/

#include <stdio.h>
int main()
{
    //定义一个数组
    int arr[6]={1,4,5,1,8,17};

    //打印数组内如
    for (int i=0; i<6; i++) {

        printf("%d\t",arr[i]);
    }
    printf("\n");


    //定义一个下标变量
    int x;

    //求数组的最大值
    int max=arr[x];

    for(int j=0;j<sizeof(arr)/sizeof(int);j++)
    {
        x=j;
        max=arr[x];
        //进过比较来找出  最大值
        for(int i=j;i<6;i++)
        {
            if (max<arr[i]) {
                max=arr[i];
                x=i;//确定最大值的下标
            }

        }
        //第j位和最大值交换
        int temp=arr[j];
        arr[j]=arr[x];
        arr[x]=temp;
    }//外层end

    //输出交换后的数组
    for(int i=0;i<6;i++)
    {

        printf("%d\t",arr[i]);
    }

    return 0;

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马