在C#中使用相同行中的数组内容

时间:2016-07-02 07:38:57

标签: c# arrays

我已经编写了一个小代码,它可以在VS上运行,但是当它在线提交时会出现问题,因此它需要在同一行格式化输入。

格式需要一个N整数,不需要列表中的数字 下一行需要在由空格分隔的同一行中的N个元素 下一个应输出总和。 我已经这样做了,但是有一个问题,它不允许我输入不超过87,它在第17行给出了NumberFormatException。为了在一行中获取数组内容,我从这里获取它:Reading array elements from the same line (C#) C#中的新手,用Java做的。

class MyClass {
static void Main(string[] args) {

    int i,k;
    int sum=0;
    int n;

    n = Convert.ToInt32(Console.ReadLine());
    //Took this code from above link
    string readLine = Console.ReadLine();
    string[] stringArray = readLine.Split(' ');
    int[] intArray = new int[100];
    for (i = 0; i < n; i++)
    {
        intArray[i] = int.Parse(stringArray[i]); // line 17
    }

    for (k = 0; k <= n; k++)
    {
        sum = sum + k;
    }
    Console.WriteLine(sum);


}

2 个答案:

答案 0 :(得分:0)

您需要访问整数数组中的元素。目前,您只需将循环计数器添加到总和中。

  var n = Convert.ToInt32(Console.ReadLine());
  var stringArray = Console.ReadLine().Split(' ');
  var intArray = new int[100];
  for (var i = 0; i < n; i++)
  {
    intArray[i] = int.Parse(stringArray[i]); // line 17
  }
  var sum = 0;
  for (var k = 0; k <= n; k++)
  {
    sum = sum + intArray[k];
  }
  Console.WriteLine(sum);

在控制台中测试:
3
10 20 300
330

答案 1 :(得分:0)

还有另一种方法,没有n(数字计数)。你只给出你的数字(10 20 300 ...)然后显示SUM:

using System;
using System.Linq;
...    
var stringArray = Console.ReadLine().Split(' ');
var sum = stringArray.Sum(number => int.Parse(number));
Console.WriteLine(sum);