Kiến thức

Bài tập C++ có lời giải/Hàm – Wikibooks tiếng Việt

Bạn đang xem: Bài tập C++ có lời giải/Hàm – Wikibooks tiếng Việt

Bài tập C++ có lời giải/Hàm

Tủ sách mở Wikibooks
<

Bài tập C++ có lời giải

Bước tới điều hướng

Bước tới tìm kiếm

Bài 1: Tìm ước chung lớn nhất của 2 số a, b.

#include "iostream" using namespace std;  int ucln(int, int); int ucln(int x, int y){  if (x < y){  x = x + y;  y = x - y;  x = x - y;  }  while (y != 0){  int m = x%y;  x = y;  y = m;  }  return x; }  int main() {  int a, b;  cin >> a >> b;  cout << ucln(a, b); } 

Bài 2: Tìm bội chung nhỏ nhất của 2 số a, b.

#include "iostream" using namespace std;  int UCLN(int, int); int UCLN(int x, int y) {  if (x < y) {  x = x + y;  y = x - y;  x = x - y;  }  while (y != 0) {  int m = x%y;  x = y;  y = m;  }  return x; }  int BCNN(int, int); int BCNN(int x, int y) {  int a = (x*y) / UCLN(x, y);  return a; }  int main() {  int a, b;  cin >> a >> b;  cout << BCNN(a, b) << endl; } 

Bài 3: Tìm các số chính phương và nguyên tố trong mảng.

  • Dòng 1: Nhập vào N là số lượng phần tử của mảng
  • Dòng 2: Nhập N số nguyên (mỗi số cách 1 khoảng trắng)

VD:

Input Output
4
1 2 3 4
1 4
2 3
#include <iostream> #include <math.h> using namespace std ;  int main() {   int sl , day , T ;  int K[100] ;   cin >> sl ;  for (int i = 0 ; i < sl ; i++) {  cin >> day ;  K[i] = day ;  }   // so CP  for (int i = 0 ; i < sl ; i++) {  T = sqrt(K[i]) ;  if (T*T == K[i])  cout << K[i] ;  }  cout << endl ;   // so NT  for (int i = 0 ; i < sl ; i++) {   bool flag = true ;  if (K[i] < 2)  flag = false ;   for (int j = 2 ; j <= sqrt(K[i]) ; j++) {  if (K[i] % j == 0) {  flag = false ;  break;  }  }   if(flag==true) cout << K[i] ;  } } 

Bài 4: Viết chương trình tính giai thừa (sử dụng hàm).

#include<iostream> #include<math.h> using namespace std;  long tinhGiaiThua(int n) {   long giaithua = 1;  if (n==0 || n==1) {  return giaithua;  }  else {  for (int i=2; i<=n; i++) {  giaithua = giaithua*i;  }  return giaithua;  } }  int main() {  int n;  cout << "Nhap mot so nguyen: ";  cin >> n;  cout << n << "! = " << tinhGiaiThua(n); } 

Bài 5: Sử dụng khái niệm nạp chồng hàm, viết chương trình tính diện tích hình tròn, hình tam giác, hình chữ nhật tùy theo lựa chọn người dùng.

#include<iostream> #include<math.h> #define pi 3.14 using namespace std;  void popup() {  cout << "Ban muon tinh dien tich hinh gi?" << endl;  cout << "1. Hinh tron" << endl;  cout << "2. Hinh chu nhat" << endl;  cout << "3. Hinh tam giac" << endl; }  class fn {  public:  void dientich(int); //hinh tron  void dientich(int, int); //hinh chu nhat  void dientich(float , int, int); //hinh tam giac };  void fn::dientich(int a) {  cout<<"Dien tich hinh tron la: " << pi*a*a; }  void fn::dientich(int a, int b) {  cout<<"Dien tich hinh chu nhat la: " << a*b; }  void fn::dientich(float t,int a,int b) {  cout<<"Dien tich hinh tam giac la: " << t*a*b; }  int main() {   popup();  int luachon;  int a, b, r;  fn obj;  cout << "nNhap lua chon cua ban (1-3): ";  cin >> luachon;   switch (luachon) {  case 1:  cout<<"Nhap ban kinh duong tron: ";  cin>>r;  obj.dientich(r);  break;  case 2:  cout<<"Nhap chieu dai va chieu rong cua hinh chu nhat: ";  cin>>a>>b;  obj.dientich(a,b);  break;  case 3:  cout<<"Nhap do dai duong cao va canh day cua hinh tam giac: ";  cin>>a>>b;  obj.dientich(0.5,a,b);  default:  cout << "Khong hop le";  } } 

Bài 6: Sử dụng khái niệm truyền mảng tới hàm, viết chương trình tính giá trị trung bình của các số nguyên nhập từ bàn phím.

#include<iostream> #include<math.h> using namespace std;  double avg(int arr[], int size) {  int tong = 0;  double tb;  for(int i=0; i<size; i++)  tong+=arr[i];  tb = (double)tong/size;  return(tb); }  int main() {  int n;  cout << "Nhap so gia tri: ";  int arr[n];  cin >> n;  for(int i=0; i<n; i++) {  cout << "Gia tri " << i+1 <<": ";  cin >> arr[i];  }  cout << "Gia tri trung binh la " << avg(arr,n) << endl; } 

Lấy từ “

https://vi.wikibooks.org/w/index.php?title=Bài_tập_C%2B%2B_có_lời_giải/Hàm&oldid=249571

Chuyên mục: Kiến thức

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Check Also
Close
Back to top button