LATEST

In số chính phương trong mảng C / C++

Trong bài viết này, codehow sẽ hướng dẫn các bạn thực hiện chương trình in số chính phương trong mảng C / C++. Đây là dạng bài tập kết hợp giữa việc sử dụng hàm và mảng trong C / C++.

Trước khi đi vào viết chương trình, chúng ta cùng tìm hiểu qua số chính phương là gì đã nhé.

Số chính phương là số có căn bậc hai là một số tự nhiên, nói cách khác thì số tự nhiên là bình phương của một số nguyên.

Ví dụ: Chúng ta có số 4 là số chính phương, vì 4 = 22. Tương tự như vậy chúng ta có số 9, 16, ... .

Vậy làm thế nào để viết chương trình in số chính phương trong mảng C / C++, hãy cùng mình bắt đầu ngay bây giờ thôi nhé.

In số chính phương trong mảng C / C++

Để in số chính phương trong mảng C / C++, đầu tiên chúng ta cần tạo một hàm kiểm tra số chính phương với tham số được truyền vào. Trong hàm ta khai báo một biến sqr, biến này dùng được lưu giá trị căn bậc hai của số cần kiểm tra.

Tiếp đến ta tạo điều kiện nếu bình phương số sqr mà bằng số kiểm tra thì đó chính là số chính phương. Ngược lại thì không phải số chính phương.

//tạo hàm kiểm tra số chính phương với 1 tham số được truyền vào
bool soCP(int n){
  //khai báo biến spr bằng căn bậc hai của biến n
  int sqr = sqrt(n);
  //nếu ta bình phương spr = n thì n chính là số chính phương
    if(sqr*sqr == n){
        return true;
    }
      //ngược lại thì không phải số chính phương
    else return false;
}

Tạo hàm inChinhPhuong() để in số chính phương trong mảng C / C++ bằng cách sử dụng hàm soCP() để kiểm tra từng phần tử trong mảng.

/* hàm đếm số nguyên tố trong mảng */
void inChinhPhuong(int a[], int n)
{
    // ta sử dụng vòng lặp for để duyệt từng phần tử trong mảng
  // cứ mỗi vòng lặp ta gọi hàm soCP() để kiểm tra phần tử đó
    printf("\nCác số nguyên tố trong mảng là: ");
    for(int i = 0; i < n; i++)
    {
        if(soCP(a[i]) == true && a[i] < 100)
        {
            printf("%d ", a[i]);
        }
    }
}

Trong hàm main(), khai báo và yêu cầu người dùng nhập vào số lượng, giá trị các phần tử trong mảng.

//khai báo biến i sử dụng cho vòng lặp for
//biến count là số lượng phần tử trong mảng
int i, count;
//yêu cầu người dùng nhập vào số lượng cho phần tử
printf("Nhập số lương phần tử trong mảng:");
scanf("%d", &count);
//gán số lượng người dùng vào kích thước của mảng
int number[count];
//yêu cầu người dùng nhập vào giá trị cho từng phần t ử của mảng
printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
for (i = 0; i < count; ++i)
scanf("%d", &number[i]);

Sau đó gọi hàm inChinhPhuong() và truyền vào số lượng, mảng chúng ta vừa tạo để thực hiện in các số chính phương có trong mảng.

//Gọi hàm inChinhPhuong() để in các số chính phương trong mảng ra màn hình
inChinhPhuong(number, count);

Dưới đây là hai chương trình mình đã viết sẵn bằng hai ngữ khác nhau C và C++, các bạn có thể tham khảo nhé.

Chương trình C:

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

//tạo hàm kiểm tra số chính phương với 1 tham số được truyền vào
bool soCP(int n){
  //khai báo biến spr bằng căn bậc hai của biến n
  int sqr = sqrt(n);
  //nếu ta bình phương spr = n thì n chính là số chính phương
    if(sqr*sqr == n){
        return true;
    }
      //ngược lại thì không phải số chính phương
    else return false;
}
/* hàm đếm số nguyên tố trong mảng */
void inChinhPhuong(int a[], int n)
{
    // ta sử dụng vòng lặp for để duyệt từng phần tử trong mảng
  // cứ mỗi vòng lặp ta gọi hàm soCP() để kiểm tra phần tử đó
    printf("\nCác số nguyên tố trong mảng là: ");
    for(int i = 0; i < n; i++)
    {
        if(soCP(a[i]) == true && a[i] < 100)
        {
            printf("%d ", a[i]);
        }
    }
}
int main()
{
    //khai báo biến i sử dụng cho vòng lặp for
    //biến count là số lượng phần tử trong mảng
    int i, count;
    //yêu cầu người dùng nhập vào số lượng cho phần tử
    printf("Nhập số lương phần tử trong mảng:");
    scanf("%d", &count);
    //gán số lượng người dùng vào kích thước của mảng
    int number[count];
    //yêu cầu người dùng nhập vào giá trị cho từng phần t ử của mảng
    printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
    for (i = 0; i < count; ++i)
      scanf("%d", &number[i]);
    //Gọi hàm inChinhPhuong() để in các số chính phương trong mảng ra màn hình
    inChinhPhuong(number, count);
    
    printf("\n-----------------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
}

Kết quả:

bai26 02 PNG

Chương trình C++:

#include <iostream>
#include <math.h>
using namespace std;

//tạo hàm kiểm tra số chính phương với 1 tham số được truyền vào
bool soCP(int n){
  //khai báo biến spr bằng căn bậc hai của biến n
  int sqr = sqrt(n);
  //nếu ta bình phương spr = n thì n chính là số chính phương
    if(sqr*sqr == n){
        return true;
    }
      //ngược lại thì không phải số chính phương
    else return false;
}

void inChinhPhuong(int a[], int n) {
  // ta sử dụng vòng lặp for để duyệt từng phần tử trong mảng
  // cứ mỗi vòng lặp ta gọi hàm soCP() để kiểm tra phần tử đó
  cout << "\nCác số chính phương trong mảng là: ";
  for (int i = 0; i < n; i++) {
    if (soCP(a[i]) == true && a[i] < 100) {
      cout << a[i] << " ";
    }
  }
}
int main() {
  //khai báo biến i sử dụng cho vòng lặp for
  //biến count là số lượng phần tử trong mảng
  int i, count;
  //yêu cầu người dùng nhập vào số lượng cho phần tử
  cout << "Nhập số lương phần tử trong mảng:";
  cin >> count;
  //gán số lượng người dùng vào kích thước của mảng
  int number[count];
  //yêu cầu người dùng nhập vào giá trị cho từng phần t ử của mảng
  cout << "\nNhập giá trị cho từng phần tử trong mảng:\n";
  for (i = 0; i < count; ++i)
    cin >> number[i];
  //Gọi hàm inChinhPhuong() để in các số chính phương trong mảng ra màn hình
  inChinhPhuong(number, count);

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

Kết quả:

bai26 01 PNG

Như vậy là chúng ta đã cùng nhau thực hiện xong chương trình in số chính phương trong mảng C / C++. Các bạn có thể luyện tập với nhiều dạng bài tập hơn tại serries bài tập C / C++ của codehow nhé. Cảm ơn các bạn rất nhiều !!!

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