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

时间:2016-01-11 11:08:32

标签: arrays sum output

我正在编写一个计算相关系数的程序,但输出始终为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(),但结果为零 这是我第一次发生这件事。我尝试以多种形式重新编写代码,但没有任何改变 我不知道它有什么问题

1 个答案:

答案 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;
        }

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