2017-04-26 66 views
2

我试图从用户那里获取一个值,并将其存储在一个特定大小的数组中。我的代码看起来像如何将用户到数组的多个值存储到特定的大小?

int n = int.parse(Console.ReadLine()); 
string[] samples = Console.ReadLine().Split(' '); 
int[] scores = Array.ConvertAll(samples, Int32.Parse); 

上面的代码的作品,但它越来越n输入后不会停止,这让我以后n输入存储值。我如何让它在n输入之后停止获取输入,并且我想要以单个空间分隔线获取所有输入。例如:

9 
1 2 3 4 5 6 7 8 9 

我应该使用for循环使这成为可能吗?

+0

在循环中执行'Console.ReadLine',直到n。 –

回答

3

我如何让它停下n个输入后得到的输入

含义,是什么?究竟?根据代码,您似乎需要在一行中使用空格分隔所有输入。您可以忽略所有的输入超出n这样的:

string[] samples = Console.ReadLine().Split(' ').Take(n).ToArray(); 

如果这不是你想要的,请提高的问题,以便它更清楚你已经尝试什么,什么你的代码做了,并且什么你想要它来代替。

注意,其它替代方案包括:

  • 要求用户在每行输入一个单独的号码。在这种情况下,您可以按照a comment中的建议进行操作,并将数据输入(即呼叫Console.ReadLine())放入循环中。例如:
string[] samples = new string[n]; 
for (int i = 0; i < n; i++) 
{ 
    samples[i] = Console.ReadLine(); 
} 
  • 处理用户输入一个键的时间,结束输入一旦用户已经输入了所需的数目的值,而不管空间,换行符等,这是一个更复杂的方法,所以我不打扰编写一个代码示例,因为目前看起来并不需要。
+0

我想OP只想输入n个输入。“允许我在n个输入后输入值”。 –

+0

@尼克希尔:是的。而且,你的观点?你读过我的回答了吗?你是否明白,根据代码,OP的发布,所有'n'输入都输入到一行中? –

+0

@PeterDuniho我编辑了我的问题,你现在可以理解,并且按照我使用你建议它工作的代码的方式。 – pkarthicbz

相关问题