c# - 向类传递值不断返回 0
问题描述
这可能是一个简单/愚蠢的问题,但我试图弄清楚为什么我的代码一直返回 0。我认为我传递值的语法不正确,但我无法找出正确的方法。
class ICESMARK
{
static int ICECount = 0;
public double average = 0;
public double[] ICES = new double[8];
public ICESMARK(double Mark)
{
Mark = ICES[ICECount];
if (ICECount == (ICES.Length - 1))
{
for (int x = 0; x < ICES.Length; x++)
{
average += ICES[x];
}
average /= ICES.Length;
}
ICECount++;
}
}
class Program
{
static void Main(string[] args)
{
ICESMARK[] ICE = new ICESMARK[8];
//LABSMARK[] LAB = new LABSMARK[6];
double userInput;
for (int counter = 0; counter < ICE.Length ; counter++)
{
Console.Write("Please enter your mark for ICE{0}: ", counter + 1 );
bool ifInt = double.TryParse(Console.ReadLine(), out userInput);
ICE[counter] = new ICESMARK(userInput);
}
Console.WriteLine(ICE[1].average);
Console.ReadLine();
}
}
ICE[1].average -
显示 0
另外,如果有人有更有效的方法,请随时告诉我。除了平均值,必须是计算,不能使用内置方法。
解决方案
完成工作的最简单代码:
void Main()
{
double[] ICE = new double[8];
double userInput = 0.0;
for (int counter = 0; counter < ICE.Length; counter++)
{
Console.WriteLine($"Please enter your mark for ICE {counter}: ");
bool isNumerical = false;
while(!isNumerical)
isNumerical = double.TryParse(Console.ReadLine(), out userInput);
ICE[counter] = userInput;
}
Console.WriteLine("Average : " + ICE.Average());
Console.ReadLine();
}
这个怎么运作:
- 删除了所有的装饰,你不需要为此目的额外的课程
- 强制代码输入有效的双精度值以填充所有插槽
- 最后用来
Linq Average
计算Average
值
推荐阅读
- datatable - html内的primevue可编辑数据表
- scala - 为什么视图绑定和上下文绑定无法检测到上下文中存在的隐含
- javascript - React 导入问题,“找不到模块:无法解决”
- django - Django 多个数据库设置
- javascript - 当用户名值为空并且代码旨在 rpevent 时,我的表单继续提交数据。我该如何阻止这个?
- flutter - Flutter 上传数据后刷新页面
- css - 如何在 React JS 中的 css 转换结束后使用 setState?
- android - 我可以在显示到屏幕后重复使用 SurfaceView 进行编码吗?
- flutter - 提供者的通用类返回?
- python - 更新文件夹内所有 excel 中的特定工作表名称