Tìm một số trong mảng 2 chiều c#

Tìm một số , nếu có thì trả về true , ko có thì false . Em viết hàm thế này nhưng kết quả ko như ý , mong mọi người giúp đỡ

 bool timkiem(int[,]iMaTran,int m ,int n)
        {
               Console.Write("Nhap phan tu can tim kiem trong mang: ");
             k = int.Parse(Console.ReadLine());
             for (int i = 1; i <= m; i++)
             {
                 for (int j = 1; j <= n; j++)
                 {
                     if (iMaTran[i, j] == k)
                         return true;
                 }
             }
                return false;
        }

Up hết code lên kiểm tra dễ hơn nha bạn :smile: mà mới nhìn vào thấy cho nhập k ngay trog hàm KT là không hay rồi

ý anh là nhập k ở hàm main à

Em nên truyền biến k ở hàm main vào hàm. Như vậy hàm sẽ có tính tái sử dụng cao hơn.
Code em thấy ko sai nhé. Em post hết đoạn nào liên quan đến hàm này lên để mọi người cùng xem.

1 Like

đây a

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bai2
{
    class Bai2
    {
        static public int[,] iMaTran = new int[100, 100];
        static public int n, m;
        public int k;
        void nhapmatran(int[,] iMaTran, int m, int n)
        {
            Console.Write("Nhap so dong:");
            m = int.Parse(Console.ReadLine());
            Console.Write("Nhap so cot:");
            n = int.Parse(Console.ReadLine());
            Console.WriteLine("Nhap ma tran:");
            for (int i = 1; i <= m; i++)
            {
                for (int j = 1; j <= n; j++)
                {
                    Console.Write("Nhap phan tu dong {0} ,cot {1} :", i, j);
                    iMaTran[i, j] = int.Parse(Console.ReadLine());
                }
                Console.WriteLine();
            }
            Console.WriteLine("Ma Tran vua nhap:");
            for (int i = 1; i <= n; i++)
            {
                for (int j = 1; j <= m; j++)
                    Console.Write(+iMaTran[i, j] + "  ");
                Console.WriteLine();
            }

        }
       public void XuatMaTran( int[,] iMaTran,  int n,  int m)
        {
            for (int i = 1; i <=n; i++)
            {
                for (int j = 1; j <= m; j++)
                    Console.Write(+iMaTran[i, j] + "  ");
                Console.WriteLine();
            }
        }
        bool timkiem(int[,] iMaTran, int m, int n)
        {
            Console.Write("Nhap phan tu can tim kiem trong mang: ");
            k = int.Parse(Console.ReadLine());
            for (int i = 1; i <= m; i++)
            {
                for (int j = 1; j <= n; j++)
                {
                    if (iMaTran[i, j] == k)
                        return true;
                }
            }
            return false;
        }
        static void Main(string[] args)
        {
            int[,] iMaTran;
            iMaTran = new int[100, 100];
            Bai2 test = new Bai2();
            test.nhapmatran(iMaTran, m, n);
          
            if (test.timkiem(iMaTran, m, n) == true)
                Console.Write("Co phan tu  trong mang ");
            else
                Console.Write("ko co phan tu trong mang ");
            Console.ReadLine();
        }
    }
}

Cách chèn code cho dễ nhìn :

bỏ

void nhapmatran(int[,] iMaTran)

[quote=“Le_Huy, post:5, topic:4805”]
test.nhapmatran(iMaTran, m, n);
[/quote] test.nhapmatran(iMaTran);

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?