将我的数组值相乘

本文关键字:数组 我的 | 更新日期: 2023-09-27 18:34:31

class Program
{
    static void Main(string[] args)
    {
        double[] values = new double[5];
        int i;
        double multValue;
        for (i = 0; i < 5; i++)
        {
            Console.Write("Enter value for number " + (i+1) + ": ");
            values[i] = double.Parse(Console.ReadLine());
        }
        Console.Write("Enter a value to multiply by: ");
        multValue = double.Parse(Console.ReadLine());
        values[1] = values[1] * multValue;
        values[2] = values[2] * multValue;
        values[3] = values[3] * multValue;
        values[4] = values[4] * multValue;
        values[5] = values[5] * multValue;
        Console.WriteLine("The new value for values[1] is: " + values[1]);
        Console.WriteLine("The new value for values[2] is: " + values[2]);
        Console.WriteLine("The new value for values[3] is: " + values[3]);
        Console.WriteLine("The new value for values[4] is: " + values[4]);
        Console.WriteLine("The new value for values[5] is: " + values[5]);
        Console.ReadLine();
    }
}

想知道我到底要做什么才能将数组的每个值相乘。因此,例如,如果用户输入每个值为 10、20、30、40、50,然后将其乘以 2,那么我希望每个元素的值更改为 20、40、60、80、100,然后显示。我以为用循环处理它会更容易,但我迷失了如何做到这一点。谢谢!

将我的数组值相乘

您可以使用 LINQ Select(( 扩展方法:

values = values.Select(d => d * multValue).ToArray();

一个循环用于乘法,另一个循环用于打印。

使用以下内容:

// One loop to multiply them
for (int i = 0; i < values.Length; i++)
{
    values[i] *= multValue;
}
// One loop to print them
for (int i = 0; i < values.Length; i++)
{
    Console.WriteLine("The new value for values[{0}] is: {1}", i, values[i]);
}

而不是:

values[1] = values[1] * multValue;
values[2] = values[2] * multValue;
values[3] = values[3] * multValue;
values[4] = values[4] * multValue;
values[5] = values[5] * multValue;
Console.WriteLine("The new value for values[1] is: " + values[1]);
Console.WriteLine("The new value for values[2] is: " + values[2]);
Console.WriteLine("The new value for values[3] is: " + values[3]);
Console.WriteLine("The new value for values[4] is: " + values[4]);
Console.WriteLine("The new value for values[5] is: " + values[5]);

要将数组中的所有项目相乘,只需使用另一个循环

for (i = 0; i < values.Length ; i++)
{
    values[i] *= multValue; // short for values[i] = values[i] * multValue
}

每当我运行代码时,都会出现"IndexOutOfRangeException未处理" 消息出现

错误IndexOutOfRangeException是因为索引从 0 到数组大小 - 1 Array。您正在尝试访问 values[5] = values[5] * multValue;values大小的索引。

嗨,

我希望以下内容有所帮助; 使用循环应该是这样的:

for(int i= 0; i<values.length; i++){
     values[i] = values[i] * multValue;
}