在给定的列和行中打印给定的数字
本文关键字:打印 数字 | 更新日期: 2023-09-27 18:16:20
我想根据行数和列数打印给定的列表,但始终显示前6个数字
static void Main(string[] args)
{
//string total, rows, columns = "";
//Console.WriteLine("Enter Total No Of Numbers");
//total = Console.ReadLine();
//Console.WriteLine("Enter all Numbers seperated by Comma");
//var allNumbers = Console.ReadLine();
//var array = allNumbers.Split(',');
//Console.WriteLine("Enter Number of Rows");
//rows = Console.ReadLine();
//Console.WriteLine("Enter Number of columns");
//columns = Console.ReadLine();
string total, rows, columns = "";
total = "30";
var allNumbers = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30";
var array = allNumbers.Split(',');
rows = "5";
columns = "6";
for (int i = 0; i < Convert.ToInt32(rows); i++)
{
for (int j = 0; j < Convert.ToInt32(columns); j++)
{
Console.Write(array[j]);
Console.Write("'t");
}
Console.WriteLine();
}
Console.ReadLine();
}
给你:
string total, rows, columns = "";
total = "30";
var allNumbers = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30";
var array = allNumbers.Split(',');
rows = "5";
columns = "6";
for (int i = 0; i < Convert.ToInt32(rows); i++)
{
for (int j = 0; j < Convert.ToInt32(columns); j++)
{
Console.Write(array[j + (i * Convert.ToInt32(columns))]);
Console.Write("'t");
}
Console.WriteLine();
}
基本上在你的循环中,你从来没有尝试过超越第一行索引。我觉得有必要做一些评论:
- 使用变量来存储解析输入的结果。
- 更倾向于使用int.TryParse(…)转换(取决于您的情况)。虽然两者都可以工作,但TryParse允许对错误进行更细粒度的控制。
- 循环中的循环是一个坏主意(如果你能避免的话)。为此,您可以使用单个循环,即控制台。当你到达一行的末尾时写入一行,你就不会遇到这个问题。