不知道要說什麼,就什麼都不要說好了T^T
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int comp(const void *a, const void *b)
{
int *A = *(int**)a;
int *B = *(int**)b;
return (B[0]- A[0]);
}
char** findRelativeRanks(int* score, int scoreSize, int* returnSize) {
int **idx_arr = calloc (scoreSize, sizeof(int*));
for (int i=0; i<scoreSize; i++)
{
idx_arr[i] = calloc (2, sizeof (int));
idx_arr[i][0]= score[i];
idx_arr[i][1]= i;
}
qsort(idx_arr,scoreSize, sizeof(int**), comp );
char **ret = calloc (scoreSize, sizeof (char*));
for (int i=0; i<scoreSize; i++)
{
int _idx = idx_arr[i][1];
switch(i){
case (0):
ret[_idx] = calloc (11,sizeof(char));
sprintf(ret[_idx],"%s", "Gold Medal");
break;
case (1):
ret[_idx] = calloc (13,sizeof(char));
sprintf(ret[_idx],"%s", "Silver Medal");
break;
case (2):
ret[_idx] = calloc (13,sizeof(char));
sprintf(ret[_idx],"%s", "Bronze Medal");
break;
default :
ret[_idx] = calloc (5,sizeof(char));
sprintf(ret[_idx],"%d", (i+1));
}
}
*returnSize = scoreSize;
return ret;
}
沒有留言:
張貼留言