乘以我的数组值

时间:2016-02-14 21:05:29

标签: c# arrays

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然后显示。我当时认为用循环处理它会更容易,但我失去了如何做到这一点。 谢谢!

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

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

使用以下内容:

compile 'me.neavo:vitamio:4.2.2'

代替:

// 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]);
}

答案 2 :(得分:2)

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

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

每当我运行代码时,“IndexOutOfRangeException未处理”   消息出现

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

答案 3 :(得分:0)

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

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