Thứ Hai, 5 tháng 12, 2016

Bài tập 200 - 201 - 202 - 203 : Tổng các ptử trong mảng

//200 Tổng các ptử trong mảng
//201 Tổng các ptử dương trong mảng
//202 Tổng các ptử có chữ số đầu là chữ số lẻ
//203 Tổng các ptử có chữ số hàng chục là 5
// 12345
// 1234
// 4 ==> 4???

#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



//200 Tổng các ptử trong mảng
int Tong_Mang(int A[], int N)
{
 int S = 0;
 for (int i = 0; i < N; i++)
 {
  S += A[i];
 }
 return S;
}

//201 Tổng các ptử dương trong mảng
int Tong_Mang_Duong(int A[], int N)
{
 int S = 0;
 for (int i = 0; i < N; i++)
 {
  if (A[i] > 0)
   S += A[i];
 }
 return S;
}



//202 Tổng các ptử có chữ số đầu là chữ số lẻ
bool KT_Le_Dau(int N)
{
 while (N > 9)
 {
  N = N / 10;
 }
 if (N % 2 == 0)
  return false; // chẳn
 return true; // lẻ
}
int Tong_Mang_Chu_So_Le_Dau(int A[], int N)
{
 int S = 0;
 for (int i = 0; i < N; i++)
 {
  bool kq = KT_Le_Dau(A[i]);
  if (kq)
   S += A[i];
 }
 return S;
}


//203 Tổng các ptử có chữ số hàng chục là 5
// 12345
// 1234
// 4 ==> 4???
bool KT_Hang_Chuc_La_5(int N)
{
 if (N < 10)
  return false; // sai

 N = abs(N);   // Lấy giá trị tuyệt đối
 N = N / 10;   // Giảm đi hàng đơn vị
 N = N % 10;   // Lấy hàng chục
 if (N % 5 == 0)  // Kiểm tra
  return true; // phải
 return false;  // Không phải
}

int Tong_Mang_Chu_So_DonVi_5_Dau(int A[], int N)
{
 int S = 0;
 for (int i = 0; i < N; i++)
 {
  bool kq = KT_Hang_Chuc_La_5(A[i]);
  if (kq)
   S += A[i];
 }
 return S;
}


int main()
{

 int N = 0;
 NhapN(N);

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

 int Tong = Tong_Mang(A, N);
 cout << "Bai tap 200 tong mang = " << Tong;

 cout << "\n";

 int Tong_Duong = Tong_Mang_Duong(A, N);
 cout << "Bai tap 201 tong mang duong = " << Tong_Duong;

 cout << "\n";

 int Tong_LeDau = Tong_Mang_Chu_So_Le_Dau(A, N);
 cout << "Bai tap 202 tong mang le dau = " << Tong_LeDau;

 cout << "\n";

 int Tong_DV5 = Tong_Mang_Chu_So_DonVi_5_Dau(A, N);
 cout << "Bai tap 203 tong mang don vi la 5 = " << Tong_DV5;
 

 cout << "\n";
 return 0;
}

Link code backup : http://codepad.org/XzRRi8tF

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

Đăng nhận xét