在给定的列和行中打印给定的数字

本文关键字:打印 数字 | 更新日期: 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();
}

基本上在你的循环中,你从来没有尝试过超越第一行索引。我觉得有必要做一些评论:

  1. 使用变量来存储解析输入的结果。
  2. 更倾向于使用int.TryParse(…)转换(取决于您的情况)。虽然两者都可以工作,但TryParse允许对错误进行更细粒度的控制。
  3. 循环中的循环是一个坏主意(如果你能避免的话)。为此,您可以使用单个循环,即控制台。当你到达一行的末尾时写入一行,你就不会遇到这个问题。