c#获取运行时错误。为什么?
嘿,我试图解决这个问题,但Kattis说我得到运行时错误,这意味着未捕获的异常。 我的代码中是否有遗漏的内容导致应用程序崩溃c#获取运行时错误。为什么?,c#,.net,C#,.net,嘿,我试图解决这个问题,但Kattis说我得到运行时错误,这意味着未捕获的异常。 我的代码中是否有遗漏的内容导致应用程序崩溃 public static void Main(string[] args) { string line = ""; while ((line = Console.ReadLine()) != "0") { var numbers = line.Split(' ').Select(int.Parse).ToList();
public static void Main(string[] args)
{
string line = "";
while ((line = Console.ReadLine()) != "0")
{
var numbers = line.Split(' ').Select(int.Parse).ToList();
int x = numbers[0];
int y = numbers[1];
int N = numbers[2];
for(int i = 1; i <= N; i++)
{
bool found = false;
bool found2 = false;
if(i % x == 0)
{
if(i % y==0)
{
Console.WriteLine("FizzBuzz");
found2 = true;
}
else
{
Console.WriteLine("Fizz");
found = true;
}
}
if(i % y == 0 && !found2)
{
Console.WriteLine("Buzz");
found = true;
}
if(!found && !found2)
{
Console.WriteLine(i);
}
}
}
}
publicstaticvoidmain(字符串[]args)
{
字符串行=”;
而((line=Console.ReadLine())!=“0”)
{
var numbers=line.Split(“”).Select(int.Parse.ToList();
int x=数字[0];
int y=数字[1];
int N=数字[2];
对于(int i=1;i没有任何东西可以保证number
的长度至少为3甚至1。
这意味着以下所有行都可能引发索引越界异常:
int y = numbers[1];
int N = numbers[2];
因此,在分配上述行之前,您需要检查数字。长度
,我理解这个问题的方式是,控制台上会给您一行3个数字。因此,您应该只执行一行读取行
。我建议在执行循环时删除,然后执行
var numbers = Console.ReadLine().Split(' ').Select(int.Parse).ToList();
运行代码时会出现哪些异常?哪一行出现错误?我感觉你只是想向我公布一个站点…调试时,会出现什么异常?哪一行引发异常?不要忽略错误,系统会告诉你问题。我不确定而((line=Console.ReadLine())!=“0”)
是有意义的,因为它说输入将是一个单独的测试用例。试着在循环时删除。但是你怎么知道这是这种情况下的特定错误呢?