我学习了c#,我的功能有问题。 它应该将选项卡数组的元素乘以mnoznik并返回输出选项卡,我尝试了很多方法,但仍然不知道如何解决它。
static int mnozenie(int[] tab, int mnoznik)
{
int[] wyj;
wyj = new int[tab.Length];
if (mnoznik != 0)
{
for (int i = 0; i < tab.Length; i++)
wyj[i] = tab[i] * mnoznik;
return wyj[];
}
else
return 0;
}
答案 0 :(得分:3)
尝试
static int[] mnozenie(int[] tab, int mnoznik)
{
int[] wyj = new int[tab.Length];
if (mnoznik != 0)
{
for (int i = 0; i < tab.Length; i++)
wyj[i] = tab[i] * mnoznik;
}
return wyj;
}
答案 1 :(得分:0)
您尝试返回数组和整数,这是您无法做到的。你可以将它全部包装在一个元组&lt;,&gt;中。并且返回两者,或者在mnoznik为0的情况下你可以返回null。
类似的东西:
static Tuple<bool,int[]> mnozenie(int[] tab, int mnoznik)
{
return (mnoznik == 0)
? new Tuple<bool,int[]>(false, new [] { 0 })
: new Tuple<bool,int[]>(true, tab.Select(i => i*mnoznik).ToArray());
}
或
static int mnozenie(int[] tab, int mnoznik)
{
return (mnoznik == 0)
? null
: tab.Select(i => i*mnoznik).ToArray();
}
答案 2 :(得分:0)
static int[] mnozenie(int[] tab, int mnoznik)
{
if (tab.Length > 0)
{
for (int i = 0; i < tab.Length; i++)
{
tab[i] *= mnoznik;
}
return tab;
}
return null;
}
或者替代返回null只返回tab
,if
块只是防止尝试访问空集合,或者只是以您选择的任何方式处理异常。
答案 3 :(得分:0)
此代码可以帮助您 试试吧
static int[] m(int[] a , int low , int big)
{
int[] re = new int[2];
int min, max, mid ;
if (low == big)
{
min = max = a[low];
re[0] = min;
re[1] = max;
return (re);
}
}
答案 4 :(得分:0)
如果我错了,请纠正我,但我有 90% 的把握,以防在 c#/c++ 中返回数组或任何类型的元素。编译器实际上并没有实际移动值本身,在堆栈中从一个内存位置到另一个内存位置,它只是将指针/句柄推送到该特定内存,信息存储在堆栈中。
通过指定
<块引用>返回 wyj[];
您实际上是在尝试返回数组本身,而不是指针。这将是非法的,但我只是删除了方括号,您正在移动指针并且编译器是happycamper。 [编辑:遗漏的话]