我需要定义两个返回sum
和average
数组的方法,定义的方法如下: -
public int Sum(params int[] customerssalary)
{
// I tried the following but it fails return customerssalary.sum();
}
Run Code Online (Sandbox Code Playgroud)
另一个问题是如何返回这些int值的平均值?
L.B*_*L.B 37
customerssalary.Average();
customerssalary.Sum();
Run Code Online (Sandbox Code Playgroud)
mus*_*fan 13
这就是你应该这样做的方式,我之所以这样说,是因为你是C#的新手,应该尝试理解一些基本的东西是如何工作的!
public int Sum(params int[] customerssalary)
{
int result = 0;
for(int i = 0; i < customerssalary.Length; i++)
{
result += customerssalary[i];
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
使用此Sum
功能,您可以使用它来计算平均值...
public decimal Average(params int[] customerssalary)
{
int sum = Sum(customerssalary);
decimal result = (decimal)sum / customerssalary.Length;
return result;
}
Run Code Online (Sandbox Code Playgroud)
decimal
在第二个函数中使用类型的原因是因为除法可以很容易地返回非整数结果
其他人已经提供了Linq替代品,无论如何我都会使用它,但是对于Linq而言,无论如何都没有必要拥有自己的功能.我已经假设你被要求实现这样的功能作为一个任务来证明你对C#的理解,但我可能是错的.
Jon*_*eet 12
使用ints.sum()
有两个问题:
customerssalary
,而不是ints
Sum()
,而不是sum()
.另外,你需要一个using指令
using System.Linq;
Run Code Online (Sandbox Code Playgroud)
一旦你得到了总和,你可以除以数组的长度来得到平均值 - 你不需要使用Average()
哪个将再次迭代数组.
int sum = customerssalary.Sum();
int average = sum / customerssalary.Length;
Run Code Online (Sandbox Code Playgroud)
或作为double
:
double average = ((double) sum) / customerssalary.Length;
Run Code Online (Sandbox Code Playgroud)