大可爱 发表于 2018-10-16 16:37:39

选择排序 找处错误的地方

#include<stdio.h>
void SELECTSORT(int a[] ,int n)
{
        int i,j,d;
        int temp;
        for(i = 0;i < n-1;i++)
        {
                d = i;
                for(j = i +1; j < n; j++)
                {
                        if (a < a)
                        {
                                d = j;
                        }       
       
                        if (d != i)
                        {
                                temp = a;
                                a = a;
                                a = temp;
                        }
                }
       
        }
int main()
{
        int a ={5,2,7,1,4,3};
        SELECTSORT(a,&a-&a);
        for (int i = 0;i < 6;i++)
        {
                printf("%d\n",a);
        }
       
}
选择排序,找出错误的地方

claws0n 发表于 2018-10-16 16:44:10

#include<stdio.h>
void SELECTSORT(int a[] ,int n)
{
    int i,j,d, temp;
    for(i = 0; i < n-1; i++)
    {
      d = i;
      for(j = i +1; j < n; j++)
      {
            if (a < a)
            {
                d = j;
            }
                }      //<-------------------

      if (d != i)
      {
            temp = a;
            a = a;
            a = temp;
      }

    }
}
      
int main()
{
    int a ={5,2,7,1,4,3};
    SELECTSORT(a,6);        //<-------------- 为啥用地址?你要把 sizeof(int) 也考虑
    for (int i = 0;i < 6;i++)
    {
      printf("%d ",a);
    }
    return 0;      
}

大可爱 发表于 2018-10-16 17:08:36

claws0n 发表于 2018-10-16 16:44


SELECTSORT(a,&a-&a+1);
这样确实麻烦了点
页: [1]
查看完整版本: 选择排序 找处错误的地方