【发布时间】:2020-12-03 11:36:06
【问题描述】:
我正在编写一个 C# 控制台应用程序。 “app”是一个糟糕的 mans 矩阵(1 和 0 落在页面下方)。
我不知道如何首先获得 1 行,然后是 2 行(第一行现在应该在 2cnd 位置)等等。
我得到的最接近的是二维数组中的下一行...
这仅打印当前行:
public static int col = 0;
static void PrintSingleLine()
{
for (int i = col; i <= pnms.GetLength(0) - 1;)
{
for (int j = 0; j <= pnms.GetLength(1) - 1; j++)
{
Console.Write(pnms[col, j]);
}
break;
}
col =+ 1;
}
我已经对其进行了修改,并试图让它打印出到目前为止 +1 已打印的所有行,但我无法让它工作......
public static int coll = 0;
static void PrintRelevantLines()
{
int cnt = 0;
for (int i = coll; i <= pnms.GetLength(0) - 1;)
{
for (int j = 0; j <= pnms.GetLength(1) - 1; j++)
{
for (int k = cnt; k <= coll; k++)
{
Console.Write(pnms[k, j]);
}
}
break;
}
coll = +1;
}
任何帮助将不胜感激。
谢谢
编辑 1:
根据要求,我会告诉你想要的结果。
假设我的数组有 3 行。值是这样的:
1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1
0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1
1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1
我想打印第一秒/或用户输入
(x) 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1
要打印的第二个用户输入:
(y) 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1
(x) 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1
要打印的第三个用户输入:
(z) 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1
(y) 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1
(x) 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1
感谢您指出不清楚的地方。当我提出这个问题时,我虽然很清楚:)
如果我可以提供任何其他信息,请告诉我
【问题讨论】:
-
可能缺少换行符,
break;看起来很奇怪,删除它 -
不,如果我删除
break;,它只会继续无限循环......如果有更多字符,那么缓冲区大小无论如何都应该写在下一行...... -
是否要按降序打印行?
-
这个不清楚,给我们看看输入和预期输出
-
编辑问题