讨论 / 为什么总是错
yuyilahanbao 2013-11-27 04:48:23
点我顶贴 收藏 删除
#include<stdio.h>

#include<stdlib.h>

#define N 50000

unsigned long de[10];

unsigned long n,k;

struct person{

unsigned long num;

unsigned long value;

};

struct person p[N];

struct person *ta,*tb;

int cmp(const void *a,const void *b)

{

ta = (struct person *)a; tb = (struct person *)b;

if ((ta->value) == (tb->value))

return (ta->num)-(tb->num);

else

return (tb->value)-(ta->value);

}

long main()

{

long i,j,k;

void init();

void add_e();

void prlong();

init();

qsort(p,n,sizeof(long)*2,cmp);

add_e();

qsort(p,n,sizeof(long)*2,cmp);

prlong();

return 0;

}

void init()

{

long i;

scanf("%ld%ld",&n,&k);

for (i = 0;i < 10;i++)

scanf("%ld",de+i);

i = 0;

while(i < n) {

scanf("%ld",&p[i].value);

p[i].num = i+1;

i++;

}

}

void add_e()

{

long i;

for (i = 0;i < n;i++)

p[i].value = p[i].value+de[i];

}

void prlong()

{

long i;

for (i = 0;i < k-1;i++)

printf("%ld ",p[i].num);

if (i < k)

printf("%ld\n",p[i].num);

}

数据范围试过开过好大。但就是错……

查看更多回复
提交回复