2015-03-30 40 views
0

我学习c#并且我的函数有问题。 它应该乘以mnoznik标签数组的元素和返回输出选项卡,我尝试了很多方法,但仍然不知道如何解决它。如何返回int数组C#

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

让你的返回类型为'INT [] []'和其他部分返回'null'。 – Habib 2015-03-30 18:00:18

回答

2

尝试

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; 

} 
+0

如果输入“mnoznik”为0,则OP需要值“0”。恕我直言,这意味着总是返回wyj会更有意义;如果mnoznik为0,则跳过乘法循环。 – 2015-03-30 18:03:12

+0

然后只是返回空数组... – puko 2015-03-30 18:07:29

+0

返回System.Int32 [] ... – woochuck 2015-03-30 18:57:57

0

你试图同时返回数组和一个整数,你不能这样做。你可以用它在所有元组<,>和返回两个,也可以在案件mnoznik返回空值是0

喜欢的东西:

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(); 
} 
+0

在你的第二个例子有方法int返回类型和u返回int数组 – puko 2015-03-30 18:13:49

+0

这是一个错字。我应该写int []。另一件事是,你可能会返回一个定义良好的数组,而不是null,就像我在第一个例子中所做的那样:new [] {0}; – f00f 2015-03-31 19:16:09

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块只是防止试图访问空集合,或只处理异常无论你选择什么方式。

+0

或者替代返回null只是返回制表符,if块只是防止尝试访问空集合,或者只是以您选择的任何方式处理异常。 – unoriginal 2015-03-30 18:41:46

+0

哪里存储乘法结果?在标签中选中 – puko 2015-03-30 19:05:02

+0

,检查其在那里的foreach块。 – unoriginal 2015-03-30 19:16:59

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); 
     } 
     }