注册 登录
编程论坛 C++教室

求教,下列程序想输出第K大的数,为什么不对啊

红与黑的铭记 发布于 2013-11-19 22:02, 389 次点击
#include <iostream.h>
int which(int *a,int n,int k)
{
    int i,j,temp;
    for(i=0;i<n-1;i++)
        for(j=i;j<n;j++)
        {
            if(a[j]>a[i])
            {
                a[j]=temp;a[j]=a[i];a[i]=temp;
            }
        }
        return a[k];
}

void main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10},i;
    cout<<"第K大的为"<<which(a,10,5)<<endl;
}
#结果始终显示第K大的数为-858993460
3 回复
#2
yuccn2013-11-19 22:53
a[j]=temp;a[j]=a[i];a[i]=temp;

改成
temp = a[j]
#3
qunxingw2013-11-19 22:56
a[j]=temp;//?
#4
wu27826418032013-11-20 23:50
a[j]=temp;a[j]=a[i];a[i]=temp;
交换数值你还没过关
1