Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#-2d数组使用for循环打印相关行_C#_Arrays_For Loop - Fatal编程技术网

c#-2d数组使用for循环打印相关行

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;) {

我正在编写一个C#控制台应用程序。“应用程序”是一个穷人矩阵(1和0从页面上掉下来)

我不知道如何先得到一行,然后得到两行(第一行现在应该在第二位)等等

我得到的最接近的是2d数组中的下一行

这将仅打印当前行:

    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();
                }
            }