在C#中我如何要求用户在数组中启动和停止点?
到目前为止,我的代码如下:
class Program
{
static void Main(string[] args)
{
double[] num = { 10, 20, 30, 40, 50 };
double n = num.Length;
Console.Write("Elements of, arrary are:" + Environment.NewLine);
for (int i = 0; i < n; i++)
{
Console.WriteLine(num[i]);
}
double sum = 0;
for (int i = 0; i < n; i++)
{
sum = sum + num[i];
}
Console.WriteLine("The sum of elements:" + sum);
Console.ReadKey();
}
}
答案 0 :(得分:1)
我猜你会得到起点和终点之间的元素总和。从用户处获取两个输入,并将它们分配给for-loop
的起点和终点。如:
int startingPoint = Convert.ToInt32(Console.ReadLine());
int endingPoint = Convert.ToInt32(Console.ReadLine());
for(int i = startingPoint; i <= endingPoint; i++)
{
//take sum etc.
}
不要忘记告知用户数组中的元素值以及当时输入的输入值。
这里另一个重要的事情是控制输入。它们应该是数字,在0-n
之间,起点应小于终点。
对于数字控制,您可以写如下:
if (int.TryParse(n, out startingPoint))
{
// operate here
}
else
{
Console.WriteLine("That's why I don't trust you, enter a numeric value please.");
}
startingPoint
应在0-n
之间,且不能为n
。控制它:
if (startingPoint >= 0 && startingPoint < n)
{
// operate here
}
else
{
Console.WriteLine("Please enter a number between 0 and " + n + ".");
}
成功获取startingPoint
后,您应该控制endingPoint
。它应该在startingPoint-n
之间。控制为数字后,您可以写如下:
if (endingPoint >= startingPoint && endingPoint < n)
{
// operate here
}
else
{
Console.WriteLine("Please enter a number between " + startingPoint + " and " + n + ".");
}
我不知道我能为这个问题多解释一下。如有其他问题,请告诉我。
答案 1 :(得分:0)
如果要提示用户输入开始和结束索引:
Console.WriteLine("Please enter start index");
string startIndexAsString = Console.ReadLine();
int startIndex = int.Parse(startIndexAsString);
Console.WriteLine("Please enter end index");
string endIndexAsString = Console.ReadLine();
int endIndex = int.Parse(endIndexAsString);
var sum = num.Skip(startIndex).Take(endIndex - startIndex + 1).Sum();