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;
}
假设您想在访问数组值之前修改它们,这应该可行。
我正在编写一个计算相关系数的程序,但输出始终为 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;
}
假设您想在访问数组值之前修改它们,这应该可行。