1个回答
展开全部
那个sort函数,即排序函数写错了,少了一个是否要交换最大值下标的判断
所以现在改成这样
void sort(int a[],int n)//排序函数
{
int i,j,max,temp,flg;//flg用来记住比较大的数的下标
for(i=0;i<n;i++)
{
flg=0;
max=a[i];
for(j=i+1;j<n;j++)
{
if(a[j]>max)
{
max=a[j];//一定要记得加上,不然记住的flg就不是最大值了
flg=j;
}
}
if(flg!=0)
{
temp=a[i];//最大值冒到比较的首地址下标
a[i]=a[flg];
a[flg]=temp;
}
}
}
所以现在改成这样
void sort(int a[],int n)//排序函数
{
int i,j,max,temp,flg;//flg用来记住比较大的数的下标
for(i=0;i<n;i++)
{
flg=0;
max=a[i];
for(j=i+1;j<n;j++)
{
if(a[j]>max)
{
max=a[j];//一定要记得加上,不然记住的flg就不是最大值了
flg=j;
}
}
if(flg!=0)
{
temp=a[i];//最大值冒到比较的首地址下标
a[i]=a[flg];
a[flg]=temp;
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询