c# 打印仅包含正整数的数组中的行

本文关键字:数组 整数 打印 包含正 | 更新日期: 2023-09-27 17:56:02

我真的很接近,但我似乎无法理解最后一步。所以我想要的是拥有 2d 矩阵并仅打印具有所有正整数的行。

现在我的代码只是取出 0 或负数的整数,但如果所述行包含 0 或负数,我需要删除整行。

这就是我现在得到的

输入:

1 2 6 4
1 5 0 9

输出:

1 2 6 4
1 5 

所以基本上它不应该打印第二行 b/c 它有一个非正整数

我做错了什么?

感谢您抽出宝贵时间看一看!

 static void Main(string[] args)
        {
// reads in multiples lines( array from console)            
List<string> L = readAllLines();
            // feeds read lines into matrix
            int[,] m = convertListToIntMatrix(L);// feeds read lines into matrix
            int Rows = m.GetLength(0);
            int Cols = m.GetLength(1);
            for (int r = 0; r < Rows; r++)
            {
                for (int c = 0; c < Cols; c++)
                {
                    if (m[r, c] <= 0)
                    {
                        break;
                    }
                    else Console.Write("{0} ", m[r, c]);
                }
                Console.WriteLine();
            }

c# 打印仅包含正整数的数组中的行

将循环更改为如下所示的内容:

for (int r = 0; r < Rows; r++)
{
    bool rowOkay = true;
    for (int c = 0; c < Cols; c++)
    {
        if (m[r, c] <= 0)
        {
            rowOkay = false;
        }
    }
    if (rowOkay)
    {
        for(int i=0;i<Cols;++i) {Console.Write("{0} ", m[r,i]);}
        Console.WriteLine();
    }
}

当你找到 0 时你会中断,但你输出之前的所有内容。相反,您可以设置一个标志,然后在未设置标志时评估它以输出行。您仍然会中断但延迟所有输出,直到您知道该行是好的。

你在吉姆哈里斯的PP2班吗?您还可以设置一个变量来计算行中有多少个正数,如果它等于行中的一个或多个整数,则打印出该行。

如果您使用的是列表集合,只需检查列表的 Min() 值;

list1.Min() <= 0