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();
}
将循环更改为如下所示的内容:
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