2013-05-29 26 views
2

我需要代码,从用户取得输入,然后将它们放在一起,简单。但我不能找到一种方法,直到按下0采取的投入,比加数字加在一起.. 到目前为止,我把它取10个值,但就像我说的,它需要进行定制..感谢您的帮助。当输入为0停服值

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(); 
+0

你有没有尝试什么吗?它是如何去的?是否有特定的理由记录所有的价值,或者你只需​​要这笔金额? – Jon

+0

我新来这,这是我的编程类的一部分,所以我仍然知道很少..我试图寻找类似的东西,但我没有找到它..如果我会有一个例子,我会知道如何做到这一点。但不幸的是我没有:(是的,我只需要总和。 – gx15

+0

你不需要“代码”,你需要“代码”。:) –

回答

6

下面的代码不限于10个输入,就可以给尽可能多的输入你像

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

Console.WriteLine(sum); 
Console.ReadLine(); 
2

Check加入它之前的输入,和break圈外如果是0的:

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

myarray[i] = input; 
+1

_注意:_在第二个循环硬编码的'10'应该更改为myarray.Length以避免出现IndexOutOfRangeException。或者,应该使用'foreach'循环。 – Leri

+0

@PLB - 看到两个循环长度相同,这是真正的问题吗? – Oded

0

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

var ls = new List<int>(); 

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

     ls.Add(input); 
    } 

Lists by MSDN

0

你可以使用这样的事情:

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

    //do you math here 
} 
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(); 
+0

萨瓦尔的解决方案是更优雅,我集中阵列,而不是最终目标上。 :) – webdevduck

相关问题