马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码有点长,是这样子的:#include<stdio.h>
struct num{
int a,b;
};
void f(struct num s[],int n)
{
int index,j,k;
struct num temp;
for(k=0;k<n-1;k++)
{
index=k;
for(j=k+1;j<n;j++)
if(s[j].b<s[index].b) index=j;
temp=s[index];
s[index]=s[k];
s[k]=temp;
}
}
int main()
{
int count,i,k,m,n,no;
struct num s[100],*p;
scanf("%d%d%d",&n,&m,&k);
for(i=0;i<n;i++)
{
s[i].a=i+1;
s[i].b=0;
}
p=s;
count=no=0;
while(no<n)
{
if(p->b==0) count++;
if(count==m)
{
no++;
p->b=no;
count=0;
}
p++;
if(p==s+n)
p=s;
}
f(s,n);
printf("%d: %d\n",s[k-1].b,s[k-1].a);
return 0;
}
我带了一组数“5 4 3”进去算,但是卡在了f()那里……因为s[].b的值没有弄清楚……这种相对长一点的代码心里就怵得慌了 |