C# Can';不能添加到数组中
我正在编写数组教程。我对阵列的了解有限。 我遇到了一个错误“运算符'+='无法应用于'double[]类型的操作数。我不知道为什么这不起作用。在教程要求更改使用数组之前,原始代码工作正常。有什么想法吗 不带数组的原始代码:C# Can';不能添加到数组中,c#,arrays,C#,Arrays,我正在编写数组教程。我对阵列的了解有限。 我遇到了一个错误“运算符'+='无法应用于'double[]类型的操作数。我不知道为什么这不起作用。在教程要求更改使用数组之前,原始代码工作正常。有什么想法吗 不带数组的原始代码: string inputString; double sales=0, totalA = 0, totalB = 0, totalC=0; double total = 0; string initial; C
string inputString;
double sales=0, totalA = 0, totalB = 0, totalC=0;
double total = 0;
string initial;
Console.Write("Enter family initial: ");
inputString = Console.ReadLine();
initial = inputString.ToString();
while (initial != "z" && initial != "Z")
{
Console.Write("Enter a sales amount: ");
inputString = Console.ReadLine();
sales = Convert.ToDouble(inputString);
total += sales;
if (initial == "A")
{
totalA += sales;
}
else if (initial == "B")
{
totalB += sales;
}
else if (initial == "C")
{
totalC += sales;
}
Console.Write("Enter family initial: ");
inputString = Console.ReadLine();
initial = inputString.ToString();
}
Console.WriteLine("Family A earned: {0}", totalA.ToString("C"));
Console.WriteLine("Family B earned: {0}", totalB.ToString("C"));
Console.WriteLine("Family C earned: {0}", totalC.ToString("C"));
Console.WriteLine("Grand Total Sales: {0}",total.ToString("c"));
这是我试图修改代码(每个请求)以在数组中存储首字母和累计总销售额。我能做些什么来实现这一点吗
string inputString;
// double sales=0, totalA = 0, totalB = 0, totalC=0;
double sales;
double total = 0;
string initial;
string[] familyNames = {"Anderson","Bowman","Claxton"};
string[] inital = { "A", "B", "C" };
double[] totalA, totalB, totalC;
Console.Write("Enter family initial: ");
inputString = Console.ReadLine();
initial = inputString.ToString();
while (initial != "z" && initial != "Z")
{
Console.Write("Enter a sales amount: ");
inputString = Console.ReadLine();
sales = Convert.ToDouble(inputString);
total += sales;
if (initial == "A")
{
totalA += sales;
}
else if (initial == "B")
{
totalB += sales;
}
else if (initial == "C")
{
totalC += sales;
}
Console.Write("Enter family initial: ");
inputString = Console.ReadLine();
initial = inputString.ToString();
}
Console.WriteLine("Family A earned: {0}", totalA.ToString("C"));
Console.WriteLine("Family B earned: {0}", totalB.ToString("C"));
Console.WriteLine("Family C earned: {0}", totalC.ToString("C"));
Console.WriteLine("Grand Total Sales: {0}",total.ToString("c"));
下面的线路有问题
totalA += sales;
totalB += sales;
totalC += sales;
因为totalA/totalB/totalC被声明为双数组
在分析了代码之后,我觉得您无论如何都不需要双数组。
因此,要纠正这个问题,您需要更改以下内容
double[] totalA, totalB, totalC;
到
+
运算符不适用于数组。
例如:
double[] array = new double[2];
array = array + 2; //// this is undefined.
在您的例子中是totalA、totalB、totalC
double
(值)或double[]
(数组)?由于这是您正在学习的教程,我认为本练习的重点是消除3个total
变量,并使用数组
因此,您不需要使用totalA
、totalB
和totalC
,而只需要使用一个3元素数组:totals
。可能类似这样:
string inputString;
double sales;
double total = 0;
string initial;
string[] familyNames = {"Anderson","Bowman","Claxton"};
string[] inital = { "A", "B", "C" };
double[] totals = new double[3];
Console.Write("Enter family initial: ");
inputString = Console.ReadLine();
initial = inputString.ToString();
while (initial != "z" && initial != "Z")
{
Console.Write("Enter a sales amount: ");
inputString = Console.ReadLine();
sales = Convert.ToDouble(inputString);
total += sales;
if (initial == "A")
{
totals[0] += sales;
}
else if (initial == "B")
{
totals[1] += sales;
}
else if (initial == "C")
{
totals[2] += sales;
}
Console.Write("Enter family initial: ");
inputString = Console.ReadLine();
initial = inputString.ToString();
}
Console.WriteLine("Family A earned: {0}", totals[0].ToString("C"));
Console.WriteLine("Family B earned: {0}", totals[1].ToString("C"));
Console.WriteLine("Family C earned: {0}", totals[2].ToString("C"));
Console.WriteLine("Grand Total Sales: {0}",total.ToString("c"));
有一些方法可以优化它,例如使用一个循环来打印总计,但我将把它留给您。您没有使用总计数组。请尝试将其更改为
double totalA,totalB,totalC;
您可能不需要数组来计算总计,而只需取消对上面行的注释即可,以获得变量声明it’好像你甚至不需要数组,“合计”值都可以是两倍。要么是这样,要么我真的不明白你想用它们做什么。你希望totalA+=sales;
做什么?当输入销售金额时,我需要将其添加到totalC、B或a中(取决于用户输入的字母)。
string inputString;
double sales;
double total = 0;
string initial;
string[] familyNames = {"Anderson","Bowman","Claxton"};
string[] inital = { "A", "B", "C" };
double[] totals = new double[3];
Console.Write("Enter family initial: ");
inputString = Console.ReadLine();
initial = inputString.ToString();
while (initial != "z" && initial != "Z")
{
Console.Write("Enter a sales amount: ");
inputString = Console.ReadLine();
sales = Convert.ToDouble(inputString);
total += sales;
if (initial == "A")
{
totals[0] += sales;
}
else if (initial == "B")
{
totals[1] += sales;
}
else if (initial == "C")
{
totals[2] += sales;
}
Console.Write("Enter family initial: ");
inputString = Console.ReadLine();
initial = inputString.ToString();
}
Console.WriteLine("Family A earned: {0}", totals[0].ToString("C"));
Console.WriteLine("Family B earned: {0}", totals[1].ToString("C"));
Console.WriteLine("Family C earned: {0}", totals[2].ToString("C"));
Console.WriteLine("Grand Total Sales: {0}",total.ToString("c"));