-3

在 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();
    }
}
4

2 回答 2

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 + ".");
}

对于这个问题,我不知道我还能解释什么。请让我知道进一步的问题。

于 2013-05-24T15:41:29.560 回答
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();
于 2013-05-24T15:40:25.233 回答