2016-02-14 35 views
2
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,然后显示。我以为用循环处理这个会容易一些,但是我失去了如何去做这件事。 谢谢!乘以我的数组值

+3

您收集的初始值作为一个循环。在类似的循环中,你为什么要进行乘法运算? –

+0

每当我运行代码时,都会出现“IndexOutOfRangeException was unhandled”消息。我不确定为什么。 :\ – user5927290

+2

由于C#数组使用从零开始的索引,即第一个元素为0.行值[5] = values [5] * multValue是不好的。最大索引值始终为length-1 => 4 –

回答

2

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

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

每当我运行代码,一个“IndexOutOfRangeException是未处理” 的信息,那就

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

3

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

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

您好我希望下面的帮助;使用循环应该是这样的:

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

一个循环乘法和另一个打印。

使用以下命令:

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