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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© JAH562 中级黑马   /  2014-10-23 10:18  /  1144 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>
test3(){
        //排序便利数组 从小到大排
        int num[4]={3,2,4,1};
        int i,temp;
       
        for(i=0;i<4;i++){
                if(num[i]>num[i+1]){
                temp=num[i+1];
                num[i+1]=num[i];
                num[i]=temp;       
               
                       
                        }
               
                printf("%d\n",num[i]);
               
               
                }
       
       
       
        }





int main(){
        test3();
       
        return 0;
       
        }
打印出来的怎么是:2,3,1,4
怎么没有排序出来  那有 出问题了  求 大神?

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

3 个回复

倒序浏览
你这样肯定是排不了序的! 为什么呢  你一步一步跟一下程序你会发现,第一步你会实现2和3的交换 然后i++ 现在num=3 num[i+1]=4 程序条件不满足 执行i++ 然后现在num=4 num[i+1]=1 然后两者交换 就输出了2 3 1 4。如果要想排序 有很多方法 冒泡 选择 快排之类的 都很方便。我用快速排序给你写了一个例子 自己领悟下喔。
  1. void sort(int arr[], int l, int r)
  2. {
  3.         int i = l;
  4.         int j = r;
  5.         int x = arr[i];
  6.         if(l < r)
  7.         {
  8.                 while(i < j)
  9.                 {
  10.                         while((i<j) && (arr[j]>x))
  11.                                 j--;
  12.                         arr[i] = arr[j];
  13.                         while((i<j) && (arr[i]<x))
  14.                                 i++;
  15.                         arr[j] = arr[i];
  16.                 }
  17.                 arr[i] = x;
  18.                 sort(arr, l, i-1);
  19.                 sort(arr, i+1, r);
  20.         }
  21.         else
  22.                 return;
  23. }

  24. int main()     //快速排序
  25. {
  26.         int i;
  27.         int arr[4] = {3,2,4,1};
  28.         sort(arr, 0, 3);
  29.         for(i = 0; i < 4; i++)
  30.                 printf("%d ", arr[i]);
  31.         printf("\n");
  32.         return 0;
  33. }
复制代码
回复 使用道具 举报
好东西,留存
回复 使用道具 举报
顶一个,加油还在战斗中的兄弟
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马