Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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# 为什么数组的最后一行和最后一列为零?_C#_Arrays_Visual Studio 2013 - Fatal编程技术网

C# 为什么数组的最后一行和最后一列为零?

C# 为什么数组的最后一行和最后一列为零?,c#,arrays,visual-studio-2013,C#,Arrays,Visual Studio 2013,我是C#的初学者,我想为模糊最大最小合成编写代码。我使用了矩阵的2D数组。我遇到的问题是数组的最后一行和最后一列为零。而其余的数组元素根据模糊逻辑有正确的答案。最后一行和最后一列必须与数组的其他元素具有相同的元素 这是我的密码 public string[,] Max(string[,] matrix1, string[,] matrix2, int order) { string[,] fuzzy = new string[order, order];

我是C#的初学者,我想为模糊最大最小合成编写代码。我使用了矩阵的2D数组。我遇到的问题是数组的最后一行和最后一列为零。而其余的数组元素根据模糊逻辑有正确的答案。最后一行和最后一列必须与数组的其他元素具有相同的元素

这是我的密码

public string[,] Max(string[,] matrix1, string[,] matrix2, int order)
    {
        string[,] fuzzy = new string[order, order];
        double max;
        double min;

        for (int i = 0; i < order; i++)
        {
            for (int j = 0; j < order; j++)
            {
                fuzzy[i, j] = "0.0000";

                for (int k = 0; k < order; k++)
                {
                    max = Convert.ToDouble(fuzzy[i, j]);
                    min = Math.Min(Convert.ToDouble(matrix1[i, k]), Convert.ToDouble(matrix2[k, j]));

                    //min = Math.Min(Convert.ToDouble(matrix1[i, j]), Convert.ToDouble(matrix2[i, j]));
                    max = Math.Max(min, min);
                    fuzzy[i, j] = Convert.ToString((String.Format("{0:0.0000}", max)));
                }
            }
        }
        return fuzzy;

    }
公共字符串[,]Max(字符串[,]matrix1,字符串[,]matrix2,整数顺序)
{
字符串[,]模糊=新字符串[顺序,顺序];
双峰;
双分钟;
for(int i=0;i

结果如下

有人能帮我解释一下为什么最后一行和最后一列是零吗。thanx.

数据是使用随机类生成的随机数据

问题其实出在max=Math.max(min,min),我已经替换了它,并在两个矩阵上得到了fuzzy MAX_MIN运算的正确输出

代码

 //Fuzzy MAX-MIN Composition Code
    public string[,] Max(string[,] matrix1, string[,] matrix2, int order)
    {
        string[,] fuzzy = new string[order, order];
        double max = 0.0000;
        double min;

        for (int i = 0; i < order; i++)
        {
            for (int j = 0; j < order; j++)
            {
                fuzzy[i, j] = "0.0000";

                for (int k = 0; k < order; k++)
                {
                    max = Convert.ToDouble(fuzzy[i, j]);
                    min = Convert.ToDouble(fuzzy[i, j]);


                    min =Math.Min(Convert.ToDouble(matrix1[i, k]), Convert.ToDouble(matrix2[k, j]));
                    if(min > max)
                    {
                        fuzzy[i, j] = Convert.ToString((String.Format("{0:0.0000}", min)));

                    }
                    else
                    {
                        fuzzy[i, j] = Convert.ToString((String.Format("{0:0.0000}", max)));
                    }


                    //max = Math.Max(0.0000, min);   

                    //fuzzy[i, j] = Convert.ToString((String.Format("{0:0.0000}", min)));
                }
            }
        }
        return fuzzy;

    }
//模糊最大最小合成码
公共字符串[,]最大值(字符串[,]矩阵1,字符串[,]矩阵2,整数顺序)
{
字符串[,]模糊=新字符串[顺序,顺序];
双倍最大值=0.0000;
双分钟;
for(int i=0;i最大值)
{
fuzzy[i,j]=Convert.ToString((String.Format({0:0.0000}),min));
}
其他的
{
fuzzy[i,j]=Convert.ToString((String.Format({0:0.0000}),max));
}
//最大值=数学最大值(0.0000,最小值);
//fuzzy[i,j]=Convert.ToString((String.Format({0:0.0000}),min));
}
}
}
返回模糊;
}

请不要发布截图。特别是因为它们是你代码的截图。复制和粘贴将帮助我们回答您的问题。我猜这与语句
max=Math.max(min,min)有关
使用
min
两次,使其等同于执行
max=min。如果
min
等于零。。。好了,就这样。数组中的数据是什么?另外,你所说的“根据模糊逻辑的正确答案”是什么意思?你能说明你的输入是什么,以及你期望的输出是什么吗?你展示了实际输出的内容,但你从来没有展示过你期望的内容。另外,请将你的代码和数据作为实际代码发布,这样我们就可以自己尝试,而不是手动将你的代码复制到我们的IDE中。