C#定义一个二维数组,从控制台输入二维数组的值,找出值大于周围值得点的下标

C#定义一个二维数组,从控制台输入二维数组的值,找出值大于周围值得点的下标

回答

写了个完整版的:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SQLite;
using System.IO;
using System.Linq;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("输入二维数组行数:");
            int len0 = int.Parse(Console.ReadLine());
            Console.WriteLine("输入二维数组列数:");
            int len1 = int.Parse(Console.ReadLine());

            Console.WriteLine("依次输入二维数组的值:");
            int[,] arr = new int[len0, len1];
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    arr[i,j]= int.Parse(Console.ReadLine());
                }
            }
            Console.WriteLine("二维数组输入完成...");
            List<ArrayIndex> list = GetIndex(arr);
            if (list.Count > 0)
            {
                Console.WriteLine("符合条件的下标如下(行,列):");
                foreach (var item in list)
                {
                    Console.WriteLine(item.Row+","+item.Col);
                }
            }
            else 
            {
                Console.WriteLine("未找到符合条件的下标");
            }
            
            Console.ReadLine();
        }

        static List<ArrayIndex> GetIndex(int[,]arr) 
        {
            List<ArrayIndex>  result = new List<ArrayIndex>();
            List<int> list = new List<int>();
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    list.Clear();
                    if ((i - 1) >= 0) list.Add(arr[i - 1, j]);
                    if ((i + 1) < arr.GetLength(0)) list.Add(arr[i + 1, j]);
                    if ((j - 1) >= 0) list.Add(arr[i, j-1]);
                    if ((j+ 1) < arr.GetLength(1)) list.Add(arr[i, j + 1]);
                    if (arr[i, j] > list.Max()) result.Add(new ArrayIndex() {Row=i,Col=j });
                }
            }
            return result;
        }

        class ArrayIndex 
        {
            public int Row { get; set; }
            public int Col { get; set; }
        }
    }    
}

输入数组:
1,2,3,4,5,
6,11,22,33,44,
55,89,0,1,3
3,5,6,8,9,
运算结果:

第一次玩这个,明人不说暗话,我想要你的豆。

以上是C#定义一个二维数组,从控制台输入二维数组的值,找出值大于周围值得点的下标的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>