当前位置: 代码迷 >> C语言 >> [求助]求数组中第i小的数。程序有错误?
  详细解决方案

[求助]求数组中第i小的数。程序有错误?

热度:189   发布时间:2007-11-03 16:49:02.0
[求助]求数组中第i小的数。程序有错误?
#include "stdlib.h"
int partition(int b[],int e,int f);
int sort(int s[],int j,int k,int o);
int main()
{
int a[10];
int i,t=0,m;
printf("输入十个数:\n");
for(i=0;i<10;i++)
scanf("%d",a[i]);
printf("你要找第几个小的数:\n");
scanf("%d",t);
m=sort(a,0,9,t);
printf("第%d个小的数是:%d\n",t,m);
return 0;
}
int partition(int b[],int e,int f)
{
int z,y,x;
z=e;
y=f;
x=b[e];
while(y>z)
{
while(z!=y)
{
if(b[y]>x)
y--;
b[z]=b[y];
if(b[z]<x)
z++;
b[y]=b[z];
}
b[z]=x;
}
return z;
}
int sort(int s[],int j,int k,int o)
{
int q,w,r,p,l;
p=j;
q=k;
w=o;
if(p==q)
return s[p];
r=partition(s,p,q);
l=q-r+1;
if(w<=l)
{
return sort(s,j,r,w);

}
else
{
return sort(s,l+1,q,w-l);

}
}
搜索更多相关的解决方案: include  

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

scanf("%d",a[i]);

少了&.这些小问题自己调试一下就知道了.


----------------解决方案--------------------------------------------------------
printf("输入十个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("你要找第几个小的数:\n");
scanf("%d",&t);
----------------解决方案--------------------------------------------------------
  相关解决方案