当前位置: 代码迷 >> C语言 >> 请大家给我指点一下
  详细解决方案

请大家给我指点一下

热度:60   发布时间:2007-08-07 21:47:52.0
请大家给我指点一下

有这样一个程序:(我只写出了函数定义那部分,其他的就不些了)
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k])
k=j;
t=array[k];array[k]=arrar[i];array[i]=t;
}
}
是关于一个排序的程序;而觉的函数中k=i,和k=j是不是多于啊,但是我又不确定,请大家给我指点一下.
谢谢啦!

搜索更多相关的解决方案: 函数  void  

----------------解决方案--------------------------------------------------------

不多余
如果你觉得多余,那么就试着把多余的部分去掉,看程序会不会出错


----------------解决方案--------------------------------------------------------
冒泡!!肯定不多于阿!!k=i;就是每次假设第一个最大,k=j;就是找到那个最大的下标!!

----------------解决方案--------------------------------------------------------
不多余
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i; /*此处k赋值后在后两行 array[j]<array[k]处进行比较*/
for(j=i+1;j<n;j++)
if(array[j]<array[k])
k=j; /*此处k赋值后在后一行 中交换*/
t=array[k];array[k]=arrar[i];array[i]=t;
}
}

----------------解决方案--------------------------------------------------------

个人感觉有点多余,请看我的修改(已经编译通过):
void sort(int array[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
if(array[i]<array[j])
{ t=array[i];
array[i]=array[j];
array[j]=t;
}
}
}


----------------解决方案--------------------------------------------------------
  相关解决方案