2016-02-14 36 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]);