Thứ Ba, 6 tháng 12, 2016

Bài tập 210-211-212-213-214 : Tổng các ptử có chữ số đầu là chẵn

#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";
 }
}


// Hàm Tính Tổng
// 1 Khai báo biến Tổng S = 0
// 2. Duyệt
//  2.1 Nếu
//   Tính tổng
// 3 Trả về tổng


//210 Tổng các ptử có chữ số đầu là chẵn
bool KiemTra_SoDauChan(int N)
{
 while (N > 9)
 {
  N = N / 10;
 }
 if (N % 2 == 0)
  return true; // là số chẳn đầu
 return false;  // là số lẻ đầu
}

int Tong_ChanDau(int A[], int N)
{
 int S = 0;
 for (int i = 0; i < N; i++)
 {
  bool kq = KiemTra_SoDauChan(A[i]);
  if (kq)
   S += A[i];
 }
 return S;
}
//211 Trung bình cộng các số nguyên tố
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;
}

float TB_SNT(int A[], int N)
{
 int S = 0;
 int dem = 0;
 for (int i = 0; i < N; i++)
 {
  bool kq = KiemTra_SNT(A[i]);
  if (kq)
  {
   S += A[i];
   dem++;
  }
 }
 return (float)S / dem;
}

//212 Trung bình cộng các số dương
float TB_So_Duong(int A[], int N)
{
 int S = 0;
 int dem = 0;
 for (int i = 0; i < N; i++)
 {
  if (A[i] > 0)
  {
   S += A[i];
   dem++;
  }
 }
 return (float)S / dem;
}

//213 Trung bình cộng các số lớn hơn x
float TB_Lonhon_X(int A[], int N, int X)
{
 int S = 0;
 int dem = 0;
 for (int i = 0; i < N; i++)
 {
  if (A[i] > X)
  {
   S += A[i];
   dem++;
  }
 }
 return (float)S / dem;
}

//214 Trung bình nhân các số dương
float TB_Cap_So_Nhan_Duong(int A[], int N)
{
 int P = 1;
 int dem = 0;
 for (int i = 0; i < N; i++)
 {
  if (A[i] > 0)
  {
   P *= A[i];
   dem++;
  }
 }
 return (float)P / dem;
}


int main()
{

 int N = 0;
 NhapN(N);

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

 int kq_210 = Tong_ChanDau(A, N);
 cout << "BAI TAP 210 :Tong chan dau " << kq_210;
 cout << "\n";

 
 float kq_211 = TB_SNT(A, N);
 cout << "BAI TAP 211 : Trung binh SNT dau " << kq_211;
 cout << "\n";
 
 
 float kq_212 = TB_So_Duong(A, N);
 cout << "BAI TAP 211 : Trung binh duong la " << kq_212;
 cout << "\n";

 int X;
 cout << "X = ";
 cin >> X;
 float kq_213 = TB_Lonhon_X(A, N, X);
 cout << "BAI TAP 213 : Trung binh cac so lon hon X = " << kq_213;
 cout << "\n";

 float kq_214 = TB_Cap_So_Nhan_Duong(A, N);
 cout << "BAI TAP 214 : Trung binh cap so nhan duong la " << kq_214;
 cout << "\n";

 

 return 0;
}

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

Đăng nhận xét