#include <iostream>
using namespace std;
#define MAX 100
// MẢNG 1 CHIỀU
// 1. HÀM NHẬP SỐ PHẦN TỬ
void NhapN(int &N)
{
do
{
cout << "Moi ban nhap so phan tu cua mang N = ";
cin >> N;
// 0 < N <= MAX
// Điều kiện phải ngược lại
if (N <= 0 || N > MAX)
cout << "Nhap sai vui long nhap la 0 < N <= " << MAX << "\n";
} while (N <= 0 || N > MAX);
}
// 2. HÀM NHẬP MẢNG
void NhapMang(int A[], int N)
{
for (int i = 0; i < N; i++)
{
cout << "A[" << i << "]= ";
cin >> A[i];
}
}
// 3. HÀM XUẤT MẢNG
void XuatMang(int A[], int N)
{
for (int i = 0; i < N; i++)
{
cout << A[i] << "\t";
}
}
// Bài 194: liệt kê tất cả các cặp giá trị gần nhau nhất trong mảng
// VD : N = 4
// 2 5 3 4
//==> (2,3) và (3,4) và (5,4)
// Tìm khoảng cách min
int Tim_KC_Min(int A[], int N)
{
int min = abs(A[0] - A[1]);
for (int i = 0; i < N - 1; i++)
{
for (int j = i + 1; j < N; j++)
{
if (abs(A[i] - A[j]) < min)
min = abs(A[i] - A[j]);
}
}
return min;// Khoảng cách nhỏ nhất trong mảng
}
// Liệt kê các cặp có giá trị min
void LietKe_KC_Min(int A[], int N)
{
int min = Tim_KC_Min(A, N);
for (int i = 0; i < N - 1; i++)
{
for (int j = i + 1; j < N; j++)
{
if (abs(A[i] - A[j]) == min)
cout << "(" << A[i] << "," << A[j] << ")\n";
}
}
}
int main()
{
int N = 0;
NhapN(N);
int A[MAX];
NhapMang(A, N);
cout << "MANG BAN DAU\n";
XuatMang(A, N);
cout << "\n";
cout << "Ket qua bai 194 : \n";
LietKe_KC_Min(A, N);
cout << "\n";
return 0;
}
Link code backup: http://codepad.org/BpcPwehZ
Không có nhận xét nào:
Đăng nhận xét