c#-2d数组使用for循环打印相关行
我正在编写一个C#控制台应用程序。“应用程序”是一个穷人矩阵(1和0从页面上掉下来) 我不知道如何先得到一行,然后得到两行(第一行现在应该在第二位)等等 我得到的最接近的是2d数组中的下一行 这将仅打印当前行:c#-2d数组使用for循环打印相关行,c#,arrays,for-loop,C#,Arrays,For Loop,我正在编写一个C#控制台应用程序。“应用程序”是一个穷人矩阵(1和0从页面上掉下来) 我不知道如何先得到一行,然后得到两行(第一行现在应该在第二位)等等 我得到的最接近的是2d数组中的下一行 这将仅打印当前行: public static int col = 0; static void PrintSingleLine() { for (int i = col; i <= pnms.GetLength(0) - 1;) {
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秒/或用户输入
(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
要打印的第三个用户输入:
(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
谢谢你指出不清楚的地方。当我提出这个问题时,我觉得这很清楚:)
让我知道我是否可以提供任何其他信息您使用j、k、I等使事情变得困难-您可以让整个事情变得更简单。我假设你使用的是一个二维字符串数组。这里有一个更简单的版本(假设我正确理解了您的需求…)
static void PrintRelevantLines()
{
字符串[,]pnms=新字符串[3,5];
//设置数据
pnms[0,0]=“1”;
pnms[0,1]=“0”;
pnms[0,2]=“1”;
pnms[0,3]=“0”;
pnms[0,4]=“1”;
pnms[1,0]=“0”;
pnms[1,1]=“1”;
pnms[1,2]=“0”;
pnms[1,3]=“1”;
pnms[1,4]=“0”;
pnms[2,0]=“1”;
pnms[2,1]=“1”;
pnms[2,2]=“1”;
pnms[2,3]=“0”;
pnms[2,4]=“0”;
对于(int columnIndex=0;columnIndex嗯,我找到了答案。如果它对任何人都有帮助
public static int coll = 0;
static void PrintRelevantLines()
{
Console.Clear();
if (coll <= pnms.GetLength(0) - 1)
{
for (int k = 0; k <= coll; k++)
{
for (int j = 0; j <= pnms.GetLength(1) - 1; j++)
{
Console.Write(pnms[k, j]);
}
Console.WriteLine();
}
}
公共静态int coll=0;
静态无效打印相关行()
{
Console.Clear();
如果(coll可能有一个换行符丢失,break;
看起来很奇怪,只需删除它不,如果我删除了break;
它只会无限循环…如果有更多的字符,那么它应该写入下一行的缓冲区大小…你想按降序打印行吗?这不清楚,请显示输入和预期输出的问题感谢anwser。我已经知道如何打印所有行。但我不知道如何打印第一行,下一秒打印第1行和第2行,第二秒打印第1行、第2行和第3行等(或根据用户输入或其他)仅供参考,您的变量命名可能会导致一些混乱。您的“k”变量通常被称为行,而“j”变量则是列。想想看……您正在将“j”循环中的所有值依次打印在一行中……因此它们在一行中都是不同的列。因此,使用“coll”名称有点混乱。您的代码结构非常违反直觉,外部for循环不是真正的for循环,因为incrementor i从未更改,并且在第一次运行后会中断。如果(coll@Idle_Mind这是真的。我已经多次修改了这段代码,让它做我想做的事情…,一件事导致另一件事,结果是=)@FrankM谢谢。我知道它最终没有做任何事情,但我需要保留对2d数组cols(0)的“引用”。我会更改它
public static int coll = 0;
static void PrintRelevantLines()
{
Console.Clear();
if (coll <= pnms.GetLength(0) - 1)
{
for (int k = 0; k <= coll; k++)
{
for (int j = 0; j <= pnms.GetLength(1) - 1; j++)
{
Console.Write(pnms[k, j]);
}
Console.WriteLine();
}
}