C#编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该 列上最小。有可能数组没有鞍点)

要求:

  • 二维数组的大小、数组元素的值在运行时输入;
  • 程序有友好的提示信息。
using System;

namespace sy1_5{
    class Program{
        static void Main(string[] args){
            int count = 0;//鞍点数量
            Console.WriteLine("请输入二维数组的行数");
            int row = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入二维数组的列数");
            int col = int.Parse(Console.ReadLine());
            float[,] nums = new float[row,col];//初始化

            for (int i = 0; i < row; i++) {//获得数组
                for (int j = 0; j < col; j++) {
                    Console.WriteLine("请输入第{0}个数",i*col+j+1);
                    nums[i, j] = float.Parse(Console.ReadLine());
                }
            }

            for (int i = 0; i < row; i++){
                int max_col = 0;//每行最大值所在的列
                int min_col2 = 0;//每行最大值所在的列中列的最小值
                for (int j = 0; j < col; j++) {
                    if (nums[i, j] > nums[i, max_col]) {
                        max_col = j;
                    }
                }
                for (int j = 0; j < row; j++){
                    if (nums[j, max_col] < nums[min_col2, max_col]) {
                        min_col2 = j;
                    }
                }
                if (nums[i, max_col] == nums[min_col2, max_col]) {
                    Console.WriteLine("鞍点坐标({0},{1}),值为:{2}",min_col2+1,max_col,nums[min_col2,max_col]);
                    count++;
                }
            }

            if (count != 0) {
                Console.WriteLine("鞍点个数为{0}", count);
            }
            else{
                Console.WriteLine("无鞍点");
            }

        }
    }
}

原文地址:https://www.cnblogs.com/Arisf/p/15513397.html