我正在编写一个计算相关系数的程序,但输出始终为0
我将代码分开以了解问题的开始位置,结果证明是数组的总和
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace section
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("please enter the number of values:");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("enter x values:");
double[] xVal = new double[n];
foreach (int val in xVal)
{
double input = double.Parse(Console.ReadLine());
}
double sumX = 0;
for (int i = 0; i < xVal.Length; i++)
{
sumX += xVal[i];
}
// int s = Math.Sqrt(((x[i] - sum / n) * (x[i] - sum / n)) / (n - 1));
Console.WriteLine(sumX);
Console.WriteLine("enter y values:");
double[] yVal = new double[n];
foreach (int val in yVal)
{
double input = double.Parse(Console.ReadLine());
}
double sumY = 0;
for (int i = 0; i < yVal.Length; i++)
{
sumY += yVal[i];
}
Console.WriteLine(sumY);
}
}
}
我尝试过使用xVal.Sum(),但结果为零 这是我第一次发生这件事。我尝试以多种形式重新编写代码,但没有任何改变 我不知道它有什么问题
答案 0 :(得分:0)
您将始终获得0,因为您没有更新xVal或yVal
double[] xVal = new double[n];
这会创建一个空双打数组。
以下迭代遍历空双精度数组,结果为0:
for (int i = 0; i < xVal.Length; i++)
{
sumX += xVal[i];
}
我建议用以下内容替换foreach:
for (int i = 0; i < xVal.Length; i++)
{
double input = double.Parse(Console.ReadLine());
xVal[i] = input;
}
假设您想在访问它们之前修改数组值,这应该可以。