首页 > 用户发贴区 > 编程问题提问区 > 新的求助!~ 高手帮忙解答下
2008
06-02

新的求助!~ 高手帮忙解答下

#include <stdio.h>


void sort(int a[])
{
 int i,j,t;
 for(i=0;i<4;i++)
 {
  for(j=0;j<4-1;j++)
  {
   if(a[j]>a[j+1])
   {
    t=a[j];
    a[j]=a[j+1];
    a[j+1]=t;
   }
  }
 }
}
void main()
{
 int a[5]={5,10,-7,3,7},i;
 sort(a);
 for(i=0;i<=4;i++)
 {
  printf(“%d\n”,a[i]);
 }
}


 


请问这段代码的功能是什么啊


新的求助!~ 高手帮忙解答下》有 6 条评论

  1. redmay1986 说:

    是从小到大把数输出,不过好像这段程序不大对!~
    #include <stdio.h>

    void sort(int a[])
    {
     int i,j,t;
     for(i=0;i<5;i++)
     {
      for(j=0;j<5-1;j++)
      {
       if(a[j]>a[j+1])
       {
        t=a[j];
        a[j]=a[j+1];
        a[j+1]=t;
       }
      }
     }
    }
    void main()
    {
     int a[5]={5,10,-7,3,7},i;
     sort(a);
     for(i=0;i<=4;i++)
     {
      printf(“%d\n”,a[i]);
     }
    getche();}

    应该是5 不应该是4!~

  2. redmay1986 说:

    [QUOTE=redmay1986]

    是从小到大把数输出,不过好像这段程序不大对!~
    #include <stdio.h>

    void sort(int a[])
    {
     int i,j,t;
     for(i=0;i<5;i++)
     {
      for(j=0;j<5-1;j++)
      {
       if(a[j]>a[j+1])
       {
        t=a[j];
        a[j]=a[j+1];
        a[j+1]=t;
       }
      }
     }
    }
    void main()
    {
     int a[5]={5,10,-7,3,7},i;
     sort(a);
     for(i=0;i<=4;i++)
     {
      printf(“%d\n”,a[i]);
     }
    getche();}

    应该是5 不应该是4!~

    [/QUOTE]

    这应该叫冒泡法吧!~a[0]和a[1]比较用中间变量把小的赋给a[0],然后a[1]和a[2]比较用中间变量把小的赋给a[1],以此类推!~

  3. zkm琎 说:

    谢谢大哥大姐们的帮忙

  4. 星矢2008 说:

    #include <stdio.h>

    void sort(int a[])
    {
     int i,j,t;
     for(i=0;i<4;i++)
     {
      for(j=0;j<4-1;j++)
      {
       if(a[j]>a[j+1])
       {
        t=a[j];
        a[j]=a[j+1];
        a[j+1]=t;
       }
      }
     }
    }
    void main()
    {
     int a[5]={5,10,-7,3,7},i;
     sort(a);
     for(i=0;i<=4;i++)
     {
      printf(“%d\n”,a[i]);
     }
    }

    这个排序不需要两个循环的,两个的话会很浪费计算机的时间

  5. 星矢2008 说:

    #include <stdio.h>

    void sort(int a[])
    {
     int i,t;
     for(i=0;i<5;i++)
     {if(a[i]>a[i+1])
       {
        t=a[i];
        a[i]=a[i+1];
        a[i+1]=t;
       }
      }

    }
    void main()
    {
     int a[5]={5,10,-7,3,7},i;
     sort(a);
     for(i=0;i<5;i++)
     {
      printf(“%4d”,a[i]);
     }
     printf(“\n”);
    }

    不好意思…刚才贴错了

  6. zkm琎 说:

    大哥    你这是直接打印啊

       老师说是从小到大的排序………..

留下一个回复