LATEST

Bài tập sử dụng hàm trong C / C++

Trong bài viết này, codehow sẽ hướng dẫn các bạn giải một vài bài tập sử dụng hàm trong C / C++. Ở các bài trước chúng ta đã cùng nhau tìm hiểu về hàm là gì? Cách viết hàm và gọi hàm trong C / C++ rồi đúng không ạ.

Vậy cần phải luyện tập để có thể hiểu rõ hơn và áp dụng vào các bài tập trong C / C++. Không có cách nhớ lâu nào bằng cách luyện tập với nó mỗi ngày.

Bây giờ hãy cùng mình thực hiện thôi nhé, mỗi bài tập sẽ được giải bằng hai ngôn ngữ khác nhau là C và C++.

Bài tập sử dụng hàm trong C / C++ thứ nhất

Đề bài: Hiển thị các số nguyên tố trong khoảng được nhập bởi người dùng (sử dụng hàm trong C / C++).

Gợi ý:

  • Viết hàm KTraSNT() với tham số int n, có nhiệm vụ kiểm tra số n có phải số nguyên tố hay không.
  • Yêu cầu người dùng nhập vào hai số đầu và cuối, với điều kiện số thứ hai phải lớn hơn số thứ nhất. Nếu không sẽ yêu cầu nhập lại.
  • Hiển thị danh sách các số là số nguyên tố trong khoảng ra màn hình.

Chương trình C:

#include <stdio.h>
int KTraSNT(int n) {
    int j, flag = 1;
    for (j = 2; j <= n / 2; ++j) {
        if (n % j == 0) {
            flag = 0;
            break;
        }
    }
    return flag;
}
int main(void) {
    int n1, n2, i, flag;
    do{
      printf("Nhập vào giá trị đầu: ");
      scanf("%d", &n1);
      printf("Nhập vào giá trị cuối: ");
      scanf("%d", &n2);
      if(n1 >= n2) printf("Vui lòng nhập số đầu nhỏ hơn số cuối!!\n");
    }while(n1 >= n2);
    
    printf("Các số nguyên tố từ %d đến %d là: ", n1, n2);
    for (i = n1 + 1; i < n2; ++i) {
        flag = KTraSNT(i);
        if (flag == 1)
            printf("%d ", i);
    }

    printf("\n----------------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
  return 0;
}

Kết quả:

bai22 01 png

Chương trình C++:

#include <iostream>  
using namespace std; 
 
int KTraSNT(int n) {
    int j, flag = 1;
    for (j = 2; j <= n / 2; ++j) {
        if (n % j == 0) {
            flag = 0;
            break;
        }
    }
    return flag;
}  
 
int main()  
{  
    int n1, n2, i, flag;
    do{
      cout<<"Nhập vào giá trị đầu: ";
      cin>>n1;
      cout<<"Nhập vào giá trị cuối: ";
      cin>>n2;
      if(n1 >= n2) cout<<"Vui lòng nhập số đầu nhỏ hơn số cuối!!\n";
    }while(n1 >= n2);
    
    cout<<"Các số nguyên tố từ "<<n1<<" đến "<<n2<<" là: ";
    for (i = n1 + 1; i < n2; ++i) {
        flag = KTraSNT(i);
        if (flag == 1)
            cout<<i<<" ";
    }

    cout<<"\n----------------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
    return 0;  
}

Kết quả:

bai22 02 png

Bài tập sử dụng hàm trong C / C++ thứ hai

Đề bài: Tính giai thừa của một số được nhập bởi người dùng, yêu cầu số được nhập vào phải lớn hơn 1. Nếu nhỏ hơn 1 thì yêu cầu nhập lại (sử dụng hàm trong C / C++).

Gợi ý:

  • Viết hàm tính giai thừa với tham số được truyền vào.
  • Sử dụng vòng lặp for lặp từ 1 đến n, với mỗi lần lặp ta lấy kết qủa giai thừa nhân với i (gt = gt * i).
  • Gọi hàm và hiển thị kết quả ra màn hình.

Chương trình C:

#include <stdio.h>
int TinhGT(int n) {
    int gt = 1;
    for (int i = 1; i <= n; i++){
      gt = gt * i;
    }
    return gt;
}
int main(void) {
    int n;
    do{
      printf("Nhập vào giá trị cần tính: ");
      scanf("%d", &n);
      if(n <= 0) printf("Vui lòng nhập số lớn hơn 1!!\n");
    }while(n <= 0);
    
    printf("%d! = %d ",n, TinhGT(n));

    printf("\n----------------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
  return 0;
}

Kết quả:

bai22 03 png

Chương trình C++:

#include <iostream>  
using namespace std; 
 
int TinhGT(int n) {
    int gt = 1;
    for (int i = 1; i <= n; i++){
      gt = gt * i;
    }
    return gt;
}  
 
int main()  
{  
    int n;
    do{
      cout<<"Nhập vào giá trị cần tính: ";
      cin>>n;
      if(n <= 0) cout<<"Vui lòng nhập số lớn hơn 1!!\n";
    }while(n <= 0);
    
    cout<<n<<"! = "<< TinhGT(n);

    cout<<"\n----------------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
    return 0;  
}

Kết quả:

bai22 04 png

Bài tập sử dụng hàm trong C / C++ thứ ba

Đề bài: Kiểm tra một số có phải là số chính phương hay không, sau đó hiển thị thông báo ra màn hình (sử dụng hàm trong C / C++).

Gợi ý:

  • Viết hàm kiểm tra số chính phương với tham số được truyền vào.
  • Yêu cầu người dùng nhập vào số cần kiểm tra.
  • Hiển thị thông báo ra màn hình.

Chương trình C:

#include <stdio.h>
#include <math.h>
#include <stdbool.h>

bool scp(int n){
    int sqr = sqrt(n);
    return (sqr*sqr == n);
}
int main(void) {
    int n;
    printf("Nhập vào giá trị cần kiểm tra: ");
    scanf("%d", &n);

    if(scp(n)){
      printf("Đây là số chính phương!!!");
    }
    else{
      printf("Đây không phải là số chính phương !!!");
    }

    printf("\n----------------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
  return 0;
}

Kết quả:

bai22 05 png

Chương trình C++:

#include <iostream>  
#include <math.h>
using namespace std; 
 
bool scp(int n){
    int sqr = sqrt(n);
    return (sqr*sqr == n);
}
 
int main()  
{  
    int n;
    cout<<"Nhập vào giá trị cần kiểm tra: ";
    cin>>n;

    if(scp(n)){
      cout<<"Đây là số chính phương!!!";
    }
    else{
      cout<<"Đây không phải là số chính phương !!!";
    }

    cout<<"\n----------------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
    return 0;  
}

Kết quả:

bai22 06 png

Bài tập sử dụng hàm trong C / C++ thứ tư

Đề bài: Viết hàm in ra hình tam giác bằng các dấu *, với chiều cao là tham số được truyền vào, yêu cầu số đó phải lớn hơn 1 (sử dụng hàm trong C / C++).

Gợi ý:

  • Viết hàm in hình tam giác với chiều cao là tham số truyền vào.
  • Yêu cầu người dùng nhập vào chiều cao, sử dụng vòng lặp do...while để tạo điều kiện lớn hơn 1.
  • Gọi hàm để in tam giác ra màn hình.

Chương trình C:

#include <stdio.h>
#include <math.h>
#include <stdbool.h>

void InTamGiac(int h){
    for(int i = 1; i <= h; i++) {
        //in so ky tu sao
        for(int j = 1; j <= i; j++) {
            printf("* ");
        }
        printf("\n");
    }
}
int main(void) {
    int h;
    do{
      printf("Nhập vào chiều cao h: ");
      scanf("%d", &h);
      if(h <= 1) printf("Vui lòng nhập chiều cao lớn hơn 1!!!\n");
    }while(h <= 1);
    InTamGiac(h);
  
    printf("\n----------------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
  return 0;
}

Kết quả:

bai22 08 png

Chương trình C++:

#include <iostream>  
#include <math.h>
using namespace std; 
 
void InTamGiac(int h){
    for(int i = 1; i <= h; i++) {
        //in so ky tu sao
        for(int j = 1; j <= i; j++) {
            cout << "* ";
        }
        cout << endl;
    }
}
 
int main()  
{  
    int h;
    do{
      cout<<"Nhập vào chiều cao h: ";
      cin>>h;
      if(h <= 1) cout<<"Vui lòng nhập chiều cao lớn hơn 1!!!\n";
    }while(h <= 1);
  
    InTamGiac(h);

    cout<<"\n----------------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
    return 0;  
}

Kết quả:

bai22 07 png

Cùng chuyên mục:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top