2

我需要代码,它从用户那里获取输入,然后将它们简单地添加在一起。但是我找不到一种方法,在按下 0 之前进行输入,然后将数字加在一起。到目前为止,我已经将其设为 10 个值,但就像我说的那样,它需要自定义。谢谢您的帮助。

int[] myarray = new int[10];
for (int i = 0; i < 10; i++)
{
    myarray[i] = Convert.ToInt32(Console.ReadLine());
}

int a = 0;
for (int j = 0; j < 10; j++)
{
    a = a + myarray[j];
}

Console.WriteLine(a);
Console.ReadLine();
4

5 回答 5

6

下面的代码不限于 10 个输入,您可以提供任意数量的输入

int sum=0, input;
do
{
    input = Convert.ToInt32(Console.ReadLine());
    sum += input;
}
while(input != 0);

Console.WriteLine(sum);
Console.ReadLine();
于 2013-05-29T12:30:55.930 回答
2

添加前检查输入,如果为0则跳出循环

int input = Convert.ToInt32(Console.ReadLine());
if(input == 0) 
{
  break;
}

myarray[i] = input;
于 2013-05-29T12:27:39.650 回答
1

由于您不知道数组的长度,我建议使用列表。我还添加了一个 tryparse 来应对狡猾的用户输入。您可以在列表中使用 Sum() 来避免写出另一个循环。

        IList<int> myList = new List<int>();
        string userInput = "";
        int myInt = 0;

        while (userInput != "0")
        {
            userInput = Console.ReadLine();
            if(Int32.TryParse(userInput, out myInt) && myInt > 0)
            {
                myList.Add(myInt);
            }
        }

        Console.WriteLine(myList.Sum());
        Console.ReadLine();
于 2013-05-29T12:38:16.847 回答
0

当你有一个未知大小的数组时,你应该使用一个列表。

var ls = new List<int>();

    while(true)
    {
        var input = Convert.ToInt32(Console.ReadLine());
        if(input == 0) 
            break;

        ls.Add(input);
    }

MSDN 列表

于 2013-05-29T12:32:06.703 回答
0

你可以使用这样的东西:

while(true)
{
    int input = Convert.ToInt32(Console.ReadLine());
    if(input == 0)
        break;

    //do you math here
}
于 2013-05-29T12:32:46.290 回答