C# 为什么数组的最后一行和最后一列为零?
我是C#的初学者,我想为模糊最大最小合成编写代码。我使用了矩阵的2D数组。我遇到的问题是数组的最后一行和最后一列为零。而其余的数组元素根据模糊逻辑有正确的答案。最后一行和最后一列必须与数组的其他元素具有相同的元素 这是我的密码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];
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中。