最傻的办法遍历二位数组,定义两个变量max和min,每次比较两次大小,对max和min赋值对应的行列号

解决方案 »

  1.   

    int[,] data = { { 1, 2 }, { 4, 5 }, { 0, 3 } };
    int max_r = 0, max_c = 0, max = int.MinValue, min_r = 0, min_c = 0, min = int.MaxValue;
    for (int r = 0; r < data.GetLength(0); r++)
    {
        for (int c = 0; c < data.GetLength(1); c++)
        {
            if (data[r, c] > max)
            {
                max_r = r;
                max_c = c;
                max = data[r, c];
            }
            if (data[r, c] < min)
            {
                min_r = r;
                min_c = c;
                min = data[r, c];
            }
        }
    }
    Console.WriteLine("最大:" + max.ToString() + "位置:[" + max_r.ToString() + "," + max_c.ToString() + "]");
    Console.WriteLine("最小:" + min.ToString() + "位置:[" + min_r.ToString() + "," + min_c.ToString() + "]");
    Console.ReadKey();以上内容来源于CSDN社区帖子
     
     
      

  2.   

    int[,] tt ={ { 10, 2 }, { 100, 0 } };
            int tmpmax = tt[0,0];
            int tmpmin = tt[0,0];
            int a = 0,b=0,c=0,d=0;
            
            for (int i = 0; i < tt.GetLength(0); i++)
            {
                for (int j = 0; j <= tt.GetLength(1);  j++)
                {
                    if (tt[i, j] > tmpmax)
                    {
                        tmpmax = tt[i, j];
                        a = i;
                        b = j;
                    }
                    if (tt[i, j] < tmpmin)
                    {
                        tmpmin = tt[i, j];
                        c = i;
                        d = j;
                    }
                }
            }
            Response.Write(tmpmax + "-" + a + "-" + b+"-"+tmpmin + "-" + c +"-" + d);
      

  3.   

    for
      for
       遍历比较  保存max 和min  跟max min比较
      

  4.   

    int[,] data = { { 1, 2 }, { 4, 5 }, { 0, 3 } };
    int max_r = 0, max_c = 0, max = int.MinValue, min_r = 0, min_c = 0, min = int.MaxValue;
    for (int r = 0; r < data.GetLength(0); r++)
    {
      for (int c = 0; c < data.GetLength(1); c++)
      {
      if (data[r, c] > max)
      {
      max_r = r;
      max_c = c;
      max = data[r, c];
      }
      if (data[r, c] < min)
      {
      min_r = r;
      min_c = c;
      min = data[r, c];
      }
      }
    }
    Console.WriteLine("最大:" + max.ToString() + "位置:[" + max_r.ToString() + "," + max_c.ToString() + "]");
    Console.WriteLine("最小:" + min.ToString() + "位置:[" + min_r.ToString() + "," + min_c.ToString() + "]");
    Console.ReadKey();
      

  5.   


    int[] arr = new int[1000];//假设我们随机1000个数据找最大最小
    Random rnd = new Random(Environment.TickCount);//随机变量
    for (int i = 0; i < 1000; i++) arr[i] = rnd.Next();//随机赋值
    Array.Sort(arr);//数组排序
    int max = arr[arr.Length - 1];//最大值
    int min = arr[0];//最小值
      

  6.   

    int [,] array = new int [2,2];    
    var value = from v in array[i] select v;
    int s = Array.FindIndex(value.ToArray(), v => v.Equals(value.Max()));