我已经编写了一个小代码,它可以在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);
}
答案 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);