1.1.21

1.1.21 #

解答 #

实现上没什么难度,打印表格的部分可以参考之前打印二位布尔数组的方法。

注意整型数据之间相除得到的仍然是整型,小数部分会直接舍去,例如 2 / 3 的结果会是 0。

代码 #

/*
 * 输入示例:
 * 
 * 3
 * hi 1 2
 * hey 1 3
 * hello 1 4
 * 
 */
var columns = 2;
var rows = int.Parse(Console.ReadLine()); // 行号

var names = new string[rows]; // 姓名
var array = new int[rows, columns]; // 输入的两个整数
var results = new double[rows]; // 计算结果

for (var i = 0; i < rows; i++)
{
    var temp = Console.ReadLine();
    names[i] = temp.Split(' ')[0];
    for (var j = 0; j < columns; j++)
    {
        array[i, j] = int.Parse(temp.Split(' ')[j + 1]);
    }

    results[i] = (double)array[i, 0] / array[i, 1];
}

PrintArray2D(names, array, results);

static void PrintArray2D(string[] names, int[,] array, double[] results)
{
    var rows = array.GetLength(0); // 获取行数
    var columns = array.GetLength(1); // 获取列数

    for (var i = 0; i < rows; i++)
    {
        Console.Write($"\t{names[i]}");
        for (var j = 0; j < columns - 1; j++)
        {
            Console.Write($"\t{array[i, j]}");
        }

        Console.Write($"\t{array[i, columns - 1]}");
        Console.Write($"\t{results[i]:N3}"); // 变量名:N3 保留三位小数
        Console.WriteLine();
    }
}