Mô tả bài toán
Tạo ứng dụng Console, cho trước 1 mảng 2 chiều A 3x5 (2D array) như sau:
Mảng 2 chiều A 3x5
10 |
50 |
13 |
80 |
40 |
1 |
250 |
65 |
28 |
15 |
12 |
17 |
45 |
20 |
6 |
Tìm số lớn nhất (Max), số nhỏ nhất (Min) trong mảng.
Cách giải quyết
Tạo biến tạm với:
min = A[0,0]
max = A[0,0]
Sử dụng vòng lặp để duyệt các phần tử trong mảng, nếu phần tử:
A[i,j] > max => set lại giá trị max = A[i,j]
A[i,j] < min => set lại giá trị min = A[i,j]
Source code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FindMaxAndMinMatrix2D
{
class Program
{
static void Main(string[] args)
{
const int x = 3, y = 5;
int min, max;
int[,] arr = new int[x, y] {
{ 10, 50, 13, 80, 40 },
{ 1, 250, 65, 28, 15 },
{ 12, 17, 45, 20, 6 }
};
//Declare two variables max and min to store maximum and minimum.
//Assume first array element as maximum and minimum both, say max = arr[0,0] and min = arr[0,0]
min = arr[0, 0];
max = arr[0, 0];
// Iterate through array to find maximum and minimum element in array.
//Inside loop for each array element check for maximum and minimum.
for (int i = 0; i < x; i++)
{
for (int j = 0; j < y; j++)
{
//Assign current array element to max, if (arr[i,j] > max)
if (arr[i, j] > max)
{
max = arr[i, j];
}
//Assign current array element to min if if (arr[i,j] < min)
if (arr[i, j] < min)
{
min = arr[i, j];
}
}
}
//Print Array Elements
Console.Write("Array Elements\n");
for (int i = 0; i < x; i++)
{
for (int j = 0; j < y; j++)
{
Console.Write(arr[i, j] + ", ");
}
Console.WriteLine();
}
Console.WriteLine();
//Print max and min number
Console.WriteLine("Maximum element:" + max);
Console.WriteLine("Minimum element:" + min);
Console.ReadLine();
}
}
}
Github
https://github.com/kellyfire611/learning.nentang.vn-csharp/blob/master/src/FindMaxAndMinMatrix2D/Program.cs
|