Chủ Nhật, 4 tháng 12, 2016

Lập trình C/C++ - Mảng 1 chiều | Bài tập 181 - 185: giá trị lớn nhất



#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 183: Hãy liệt kê các vị trí mà giá trị tại đó 
//là giá trị tại đó là giá trị lớn nhất trong mảng 1 chiều các số thực
int TimVTMax(int A[], int N)
{
 int vtMax = 0;
 for (int i = 0; i < N; i++)
 {
  if (A[i] > A[vtMax])
   vtMax = i;
 }
 return vtMax;
}
void LietKe_VT_Bai_183(int A[], int N)
{
 int vtMax = TimVTMax(A, N);
 for (int i = 0; i < N; i++)
 {
  if (A[i] == A[vtMax])
   cout << i << "\t";
 }
}
//Bài 184 : Hãy liệt kê các vị trí mà giá trị tại đó 
//là số nguyên tố trong mảng 1 chiều các số nguyên
bool KiemTra_SNT(int N)
{
 int dem = 0;
 for (int i = 1; i <= N; i++)
 {
  if (N % i == 0)
   dem++;
 }
 if (dem == 2)
  return true;
 return false;
}
void LietKe_VT_Bai_184(int A[], int N)
{
 for (int i = 0; i < N; i++)
 {
  bool kq = KiemTra_SNT(A[i]);
  if (kq == true)
   cout << i << "\t";
 }
}


//Bài 185 : Hãy liệt kê các vị trí mà giá trị tại đó 
//là số chính phương trong mảng 1 chiều các số nguyên
bool KiemTra_SCP(int N)
{
 for (int i = 1; i <= N / 2; i++)
 {
  if (i * i == N)
   return true; // Là số chính phương
 }
 return false;  // Không là số chính phương
}
void LietKe_VT_Bai_185(int A[], int N)
{
 for (int i = 0; i < N; i++)
 {
  bool kq = KiemTra_SCP(A[i]);
  if (kq == true)
   cout << i << "\t";
 }
}




int main()
{
 int N = 0;
 NhapN(N);

 int A[MAX];
 NhapMang(A, N);
 cout << "MANG BAN DAU\n";
 XuatMang(A, N);

 cout << "\n";
 cout << "BAI TAP 183 : Xuat cac vi tri chua gia tri Max \n";
 LietKe_VT_Bai_183(A, N);
 cout << "\n";

 cout << "\n";
 cout << "BAI TAP 184 : Xuat cac vi tri chua SNT \n";
 LietKe_VT_Bai_184(A, N);
 cout << "\n";
 
 cout << "\n";
 cout << "BAI TAP 185 : Xuat cac vi tri chua SCP \n";
 LietKe_VT_Bai_185(A, N);
 cout << "\n";
 
 return 0;
}

Không có nhận xét nào:

Đăng nhận xét