早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用c#写一个函数完成以下功能有两个数组a,b他们的长度分别m,n且n>=m,将数组a中元素剔除重复项添加到数组b中,并返回添加的个数,并且将数组b倒序排列。

题目详情
用c#写一个函数完成以下功能
有两个数组a,b他们的长度分别m,n且n>=m,将数组a中元素剔除重复项添加到数组b中,并返回添加的个数,并且将数组b倒序排列。
▼优质解答
答案和解析
static void func(int[] arrayA,ref int[] arrayB)
{
Array.Sort(arrayA);//对A按照升序排列。
int size = 1;//记录arrayA中的不重复项数,至少一项
for (int i = 0; i < arrayA.Length - 1; i++)
{
if (arrayA[i] != arrayA[i + 1])
size++;//得到实际的不重项数
}
int[] tempArray = new int[size];//临时数组,保存A数组中的不重复项
int j = 0;
for (int i = 0; i < arrayA.Length - 1; i++)
{
if (arrayA[i] != arrayA[i + 1])
{
tempArray[j] = arrayA[i];
j++;
}
}
//放入最后一项,因为上面的循环忽略了最后一项
tempArray[size-1] = arrayA[arrayA.Length - 1];
//tempArray中元素是升序排列的,只要倒过来放入B数组,即为降序排列
j = 0;
for (int i = tempArray.Length - 1; i >= 0; i--)
{
arrayB[j] = tempArray[i];
j++;
}
}
//你也可以直接把A中的不重复项放入B中,而不是临时数组中,然后再想办法对B进行排序。自带的Sort方法是按照升序进行排列的。