请问一下是我的调用出了问题吗?代码无法运行。

img

img

img

img


不知道为什么运行不了。

qwertyuiopasdfghjklzxcvbnm

代码太模糊看不清楚,请你贴出文本代码看看
从最后一张图看,你的输出有问题,数组不能整体输出
要循环遍历再输出


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 练习01
{
    class A
    {
        private static void Main()
        {
            int[,] sz = new int[4, 4]
            {
              { 0, 4, 0, 0 },
              { 2, 4, 0, 2 },
              { 4, 8, 4, 2 },
              { 4, 8, 8, 4 },
            };

            int[,] suzu = new int[4, 4];
            suzu = hs1(sz);
           
            Console.WriteLine(suzu);
            Console.ReadKey ();
        }
        private static int[] Hs(int[] array)
        {
            int[] newarray = new int[array.Length ];
            int c = 0;
            
            
                for (int j = 0; j < array.Length ; j++)
                {
                    if (array[j] != 0)
                    {
                        newarray[c++] = array[j];
                    }
                }
            
            return newarray;
        }
        private static int[] Hs1(int[] array)
        {
            array = Hs(array);
            for (int i = 0; i < array.Length -1; i++)
            {
                if (array[i] != 0 && array[i] == array[i + 1])
                {
                    array[i] = array[i] + array[i + 1];
                    array[i + 1] = 0;
                }
            }
            array = Hs(array);
            return array;
        }
        private static int[,] hs(int[,] sz)
        {
            int[] newsz = new int[sz.GetLength(0)];
            for (int i = 0; i < sz.GetLength(1); i++)
            {
                for (int j = 0; j < sz.GetLength(0); j++)
                {
                    newsz[i] = sz[j, i];
                }
                newsz = Hs1(newsz);
                for (int j = 0; j < sz.GetLength(0); j++)
                {
                    sz[j, i] = newsz[j];
                }
            }
            return sz;
        }
        private static int[,] hs1(int[,] sz)
        {
            int[] newsz1 = new int[sz.GetLength(0)];
            for (int i = 0; i < sz.GetLength(1); i++)
            {
                for (int j = sz.GetLength(0) - 1; j >= 0; j--)
                {
                    newsz1[3 - j] = sz[j, i];
                }
                newsz1 = Hs1(newsz1);
                for (int j = 0; j < sz.GetLength(0); j++)
                {
                    sz[j, i] = newsz1[3 - j];
                }
            }
            return sz;
        }
    }
}

你需要将 int[,] 转成 string 类型,里面的数据都需要自行转换,然后拼接,我这里提供了一个简单的转换器,支持 int[,] 转string


            int[,] suzu = new int[4, 4];
            suzu = hs1(sz);
            Converter<int[,], string> converter = new Converter<int[,], string>(
                delegate(int[,] arr) {
                    string r = "";
                    long x = arr.GetLongLength(0);
                    long y = arr.GetLongLength(1);
                    for (int i = 0; i < x; i++)
                    {
                        r += "\n";
                        for (int j = 0; j < y; j++)
                        {
                            r += arr[i, j].ToString().PadLeft(4);
                        }
                    }
                    return r;
                });
            string s = converter.Invoke(suzu);
            Console.WriteLine(s);

解决了嘛

出现代码无法运行的问题,通常需要先确定是哪里的问题。以下是一些可能的解决方案:

  1. 检查代码是否拼写错误:检查代码中是否有拼写错误。可以使用文本编辑器检查代码,或使用自动更正功能纠正拼写错误。

  2. 检查代码是否语法错误:检查代码中是否有语法错误,如缺少括号、引号等。可以使用文本编辑器检查代码,或使用语法检查工具。

  3. 检查代码是否环境配置错误:如果代码在特定的环境(如Linux、Windows等)上运行,则可能存在环境配置错误。请确保代码在正确的环境中运行,或者使用环境变量将代码所需的环境路径传递给函数。

  4. 检查代码是否引用错误:如果代码引用了错误的库或模块,则可能存在引用错误。请确保使用了正确的库或模块,或对代码进行重构以消除引用错误。

对于qwertyuiopasdfghjklzxcvbnm这个字符串,它看起来像是一个键盘布局的键值对。请确保在代码中使用了正确的键值对,或对代码进行重构以消除键值对中的错误。另外,建议仔细检查代码,确保没有拼写错误或语法错误。