急有个排序的题不会,并且函数的返回值是数组,坐等大神解答!

急!!有个排序的题不会,而且函数的返回值是数组,坐等大神解答!!
题目:整数数组A中存放了学号1到100的100名学生的成绩,编写一个函数返回一个数组依次存放学号1到100的学生的成绩排名名次。例如A={90,80,85,99},则应返回数组{2,4,3,1}。
函数声明: int[] rank(int[] A)


坐等大神解答!!万分感激!!
------解决思路----------------------
int* rank(int* A)

其实就是返回指针。
------解决思路----------------------
如果要用返回值,返回指针,所有需要的都包括了;
如果不用返回值,使用数组的引用

------解决思路----------------------

#define STUDENT_COUNTS  100

int* Rank(int score[])
{
int *pRank = new int[STUDENT_COUNTS];

int scoreTmp[STUDENT_COUNTS];
memcpy(scoreTmp, score, STUDENT_COUNTS*sizeof(int));

for (int i=0; i<STUDENT_COUNTS; ++i)
{
for (int j=0; j<STUDENT_COUNTS-i-1; ++j)
{
if (scoreTmp[j] < scoreTmp[j+1])
{
int nTmp = scoreTmp[j];
scoreTmp[j] = scoreTmp[j+1];
scoreTmp[j+1] = nTmp;
}
}
}

for (int i=0; i<STUDENT_COUNTS; ++i)
{
int nRank = 0;
for (int j=0; j<STUDENT_COUNTS; ++j)
{
if (score[i] == scoreTmp[j])
{
pRank[i] = j-nRank+1;
break;
}
if (j != STUDENT_COUNTS-1)
{
if (scoreTmp[j] == scoreTmp[j+1])
{
++nRank;
}
}
}
}
return pRank;
}


------解决思路----------------------
引用:
楼上童鞋你这个函数声明的形式跟题目里的不太一样啊, 题目里是这样的int[] rank(int[] A);


C++没有这样子的返回值类型写法!
你为什么需要一模一样而不是理解他干嘛这样子写?