将我的数组值相乘
本文关键字:数组 我的 | 更新日期: 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;
}