问题描述
这是我的代码:
using System;
namespace CappedSum
{
class Program
{
static void Main(string[] args)
{
int sumLimit = Convert.ToInt32(Console.ReadLine());
int sum = 0;
int count = 0;
while (sum<sumLimit)
{
int number = Convert.ToInt32(Console.ReadLine());
if (sum + number < sumLimit)
{
sum += number;
count++;
}
else if (sum + number > sumLimit)
{
Console.WriteLine(sum + " " + count);
}
}
}
}
}
我必须编写一个控制台应用程序,从键盘读取数字列表,直到它们的总和达到用户输入的某个限制。
限制在第一行给出,在下一行将是必须添加的数字列表。当到目前为止输入的数字总和超过限制时,程序将停止读取,并显示最后未超过限制的数量,以及需要多少个数字来计算。
例如:如果我输入 10(这是限制),那么我输入 2,3,2,6。结果将是 7(这是最后一个没有超过限制的金额)和 3(表示需要多少个数字来计算)。
解决方法
尝试使用 Int32.Parse
而不是 Convert.ToInt32
。此外,我有时用来调试相同错误的一个非常基本的方法是在特定指令之后编写 MessageBoxes
,因此如果它们不起作用,我将永远不会看到消息,反之亦然,如果消息显示我知道有效。我会在 Messageboxes
之后放两个 Int32.Parse(Console.Readline())
就像 MessageBox.Show(sumlimit/number.ToString());
。这样您就知道代码的工作范围了。