回 帖 发 新 帖 刷新版面

主题:兄弟们帮忙,从大到小排序中算法有误!!!

兄弟们帮忙,从大到小排序中算法有误,
void sortl(a,n)/*选择排序函数*/
    float a[];
    int n:
    {int k,i,j;/*k最大值下标,i,j循环控制变量*/
    float t;/*中间变量,用于两个数的交换*/
    for(i=0;i<n-1;i++)
     {k=i;
     for(j=i+1}j<n;j++)
     if(a[j]>a[k])k=j
     t=a[i];a[i]一a[k];a[k]=t;/*进行交换*/
     }
    }

main()
{
float f[14]={3.0,
             5.0,
            14.0,
            13.0,
            6.0,
            7.0,
            10.0,
            9.0,
            11.0,
            12.0,
            4.0,
            1.0,
            2.0};
sort(f,14);


}
运算之后,排序如下
13
14
12
11
10
9
8
7
6
5
4
3
2
1
如何解决?
谢谢!

回复列表 (共1个回复)

沙发


#include<iostream.h>
void main()
{
    void sort(float a[],int n);
    float f[13]={3.0,5.0,14.0,13.0,6.0,7.0,10.0,9.0,11.0,12.0,4.0,1.0,2.0};
    sort(f,13);
    for(int i=0;i<13;i++)
       cout<<f[i]<<" ";
    cout<<endl;
}
void sort(float a[],int n)
{
    int i,j;
    float temp;
    for(i=0;i<n-1;i++)
     {
        for(j=i+1;j<n;j++)
        if(a[j]>a[i])
        {
           temp=a[j];a[j]=a[i];a[i]=temp;
        }
    }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册