c#对数组求和的输出结果始终为零

The output result of summing an array in c# is always zero

我正在编写一个计算相关系数的程序,但输出始终为 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,因为您没有更新 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;
        }

假设您想在访问数组值之前修改它们,这应该可行。