调试时,为什么visual studio说中位数是一个未分配的变量?回答
本文关键字:一个 分配 回答 变量 为什么 visual studio 中位数 调试 | 更新日期: 2023-09-27 18:11:05
所以,我正在尝试制作一个分析数据的控制台程序(好吧)。问题是,当我去打印中位数时,它告诉我它是未分配的(调试器实际上是这么说的)。我做错了什么?使用系统;
using System;
class midpointFormula
{
static void Main()
{
double min, max, range, median, quartile1, quartile3, internalQuartileRange, IQR15;
int dataPoints, dataPoints1, count, count1;
double[] dataSet;
bool isEven;
count = 0;
Console.WriteLine("This program allows you to find several diffrent values from the data");
Console.Write("Please enter the amount of data points you would like to use: ");
dataPoints = int.Parse(Console.ReadLine());
dataPoints1 = dataPoints - 1;
dataSet = new double[dataPoints];
#region Enter Data
while (count < dataPoints)
{
count1 = count + 1;
Console.Write("Please enter the {0} datapoint: ", count1);
dataSet[count] = double.Parse(Console.ReadLine());
++count;
}
#endregion
min = dataSet[0];
max = dataSet[dataSet.Length - 1];
range = max - min;
#region Even Check
if (dataPoints % 2 == 0)
{
isEven = true;
}
else
{
isEven = false;
}
#endregion
if (isEven == true)
{
int medianPoint;
medianPoint = (dataPoints / 2) - 1;
median = dataSet[medianPoint];
}
else
#region Output
Console.WriteLine("Minimum is : {0}", min);
Console.WriteLine("Maximum is : {0}", max);
Console.WriteLine("Range is : {0}", range);
Console.WriteLine("Median is : {0}", median);
#endregion
Console.ReadKey();
}
}
注意:是的,我知道如果数据点数量不均匀,它将不计算数据点,我仍在努力。
因为median
只有在isEven
为真时才赋值。如果不是,它将被初始化。由于永远不能接受使用即使也可能被取消赋值的变量,因此编译器禁止这样做。
注:不是调试器报告这个错误,而是编译器报告这个错误。
P.P.S.else语句发生了什么?-基于缩进,这看起来像是一个不完整的想法和一个明显的错误。(Console.WriteLine("Minimum is : {0}", min);
只会运行,如果isEven
是假的,但其余的那些语句将运行,因为它们没有被大括号括起来。)