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

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

菲萍 幼苗

共回答了26个问题采纳率:80.8% 举报

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方法是按照升序进行排列的。

1年前

2
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.026 s. - webmaster@yulucn.com