我试图解决codewars.com的挑战,题为“你到底有多好?”
挑战的描述:你班上有一次考试,你通过了。祝贺你!但你是个雄心勃勃的人。你想知道你是否比班里的普通学生好。您将收到一个包含同龄人考试成绩的数组。现在,计算平均和比较你的分数!如果你更好,还真,否则就错了!注意:您的点数不包括在类的点数数组中。为了计算平均值,您可以将点添加到给定的数组中!
我的解决方案:
public class Kata
{
public static bool BetterThanAverage(int[] ClassPoints, int YourPoints)
{
ClassPoints = ClassPoints.Append(YourPoints).ToArray(); // Add Yourpoints to the ClassPoints array
int AveragePoints = ClassPoints.Average(); // Get average points
if (YourPoints > AveragePoints) { // Compare
return true;
} else {
return false;
}
}
}
我得到的错误:
src/Solution.cs(5,31):error CS1061:'int[]‘不包含'Append’的定义,并且无法找到接受'int[]‘类型的第一个参数的可访问扩展方法'Append’(您是缺少使用指令还是程序集引用?)
src/Solution.cs(6,37):error CS1061:'int[]‘不包含“Average”的定义,并且无法找到接受'int[]’类型的第一个参数的可访问扩展方法‘int[]’(您是缺少一个使用指令还是程序集引用?)
我试着研究错误代码,但我无法理解解释。我的代码有什么问题,这个挑战很简单,但是我不明白为什么简单的方法不能工作?
最新消息。找到解决方案:谢谢大家的解决方案。@MikeT提出的代码正在工作,并通过了测试,但它感觉像是背离了需求。
im解决方案是在codewars.org编辑器中完成的,而不是在Visual中。任务本身是预先定义的,我决定不改变这一点。但以下是我的新代码:
public class Kata
{
public static bool BetterThanAverage(int[] ClassPoints, int YourPoints)
{
int SumClassPoints = 0;
int Average = 0;
for (int i=0; i < ClassPoints.Length; i++) {
SumClassPoints += ClassPoints[i];
}
Average = (SumClassPoints + YourPoints) / (ClassPoints.Length + 1);
if (YourPoints > Average) {
return true;
} else {
return false;
}
}
}
发布于 2022-07-27 16:22:04
首先,您使用错误的类型并让编译器来计算转换,然后使用需要添加到代码库的扩展函数。
首先,传入数组中的类型,然后将其转换为带附件的I枚举类型,然后将其转换为数组,然后调用average (也是i枚举函数),同时average返回双(而不是int ),而如果将双值转换为int,则可能丢失不隐式转换的数据,并且需要在AveragePoints或平均值函数的输出上进行显式转换。
第二,从包含方法c#allows的静态类展开类函数,但是如果没有告诉编译器您正在使用它们,它不知道它们的存在,在这种情况下,展开函数位于System.Linq命名空间中,所以必须使用
using System.Linq;
using System.Collections.Generic;
public class Kata
{
public static bool BetterThanAverage(IEnumerable<int> ClassPoints, int YourPoints)
{
ClassPoints = ClassPoints.Append(YourPoints); // Add Yourpoints to the ClassPoints array
int AveragePoints =(int) ClassPoints.Average(); // Get average points
if (YourPoints > AveragePoints)
{ // Compare
return true;
}
else
{
return false;
}
}
}
https://stackoverflow.com/questions/73141336
复制相似问题