有一个疑问:当最小值是第一行,第一列的时候,程序结果会显示:最小值是第0行,0列。但是当最小值在其他地方时,结果不会出错。
{
//建立一个5行5列的矩阵,找出其中最小的元素,输出该值及行、列号。
//建立一个矩阵
int[,] a = new int[5, 5]{
{3,2,1,4,5},
{6,7,8,9,10},
{2,4,6,8,10},
{1,3,5,7,9},
{19,29,99,24,30}
};
Console.WriteLine("有如下5行5列矩阵:" );
//输出二维矩阵,注意换行和空格。
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
Console.Write(a[i,j]+" ");
}
Console.WriteLine();
}
//找出该值,并输出其行列号
int min = FindMin(a);
Console.WriteLine("其中最小的元素为:{0}",min);
Console.ReadKey();
}
private static int FindMin(int[,] a)//二维数组作为形参被传递
{
int min = a[0,0];
int n=0, m=0;
for (int i = 0; i < 5;i++ )
{
for (int j = 0; j < 5; j++)
{
if(a[i,j]<min)
{
min = a[i, j];
n = j + 1;
m = i + 1;
}
}
}
Console.WriteLine("最小值的行数是:{0},列数是{1}",m,n);
return min;
}
“`