Viết hàm liệt kê các phần tử có chữ số đầu tiên là số chẵn trong mảng

Bài tập này chúng ta sẽ sử dụng các kiến thức từ ngôn ngữ lập trình C như: cách nhập xuất cơ bản, cách sử dụng mảng một chiều và cách sử dụng hàm trong ngôn ngữ lập trình C.

Yêu cầu của bài tập đưa ra cho chúng ta là tìm vị trí của số chẵn đầu tiên có trong mảng một chiều số nguyên bằng ngôn ngữ C.

2. Lời giải

Đầu tiên để thực hiện bài toán này chúng ta cần có kiến thức cơ bản về ngôn ngữ lập trình C, các cách nhập xuất cơ bản trong C, mảng một chiều trong C và cách sử dụng hàm trong ngôn ngữ lập trình C.

Các bước thực hiện yêu cầu của bài tập tìm vị trí của số chẵn đầu tiên có trong mảng một chiều số nguyên bằng ngôn ngữ C như sau:

Bước 1: Ta khai báo một mảng tĩnh số nguyên có 100 ô nhớ int a[100].

Bước 2: Ta khai báo số nguyên int n là số lượng phần tử có trong mảng với điều kiện n>1 hoặc n<100 nếu không thỏa mãn thì yêu cầu nhập lại n.

Bước 3: Ta khỏi tạo hàm void Nhap(int a[], int n) dùng để nhập dữ liệu từ bàn phím cho mảng. Trong hàm ta sử dụng vòng for bắt đầu từ int i =0 và kết thúc khi i<n và mỗi lần i tăng lên một để nhập dữ liệu cho từng phần tử từ a[0] đến a[n-1], trong vòng for thì nhập vào dữ liệu của a[i].

Xem thêm  Sách tiếng Anh giao tiếp cho học sinh tiểu học

Bước 4: Ta khởi tạo hàm void Xuat(int a[], int n) dùng để hiển thị dữ liệu từ mảng ra màn hình. Trong hàm ta sử dụng vòng for bắt đầu từ int i =0 và kết thúc khi i<n và mỗi lần i tăng lên một để hiển thị dữ liệu của từng phần tử từ a[0] đến a[n-1] ra màn hình, trong vòng for thì in a[i] ra màn hình.

Bước 5: Ta tạo hàm int TimChanDau(int a[], int n) dùng để tìm vị trí số chẵn đầu tiên có trong mảng; tronh hàm ta dùng vòng lặp for bắt đầu int i =0 và kết thúc khi i<n và mỗi lần i tăng lên một để hiển thị dữ liệu của từng phần tử; tiếp theo chúng ta sử dụng if với điều kiện nếu a[i] % 2==0(a[i] la so chẵn) thì ta trả về i; kết thúc lặp ta trả về -1.

Bước 6: Trong hàm main ta gọi hàm Nhap(a,n), Xuat(a,n) và sử dụng if với điều kiện nếu hàm TimChanDau(a,n)==-1 thì in ra màn hình “trong mảng không có số chẵn”, ngược lại in TimChanDau(a,n) rồi chạy chương trình.

Chương trình giải bài tập tìm vị trí của số chẵn đầu tiên có trong mảng một chiều số nguyên bằng ngôn ngữ C như sau:

3. Tổng kết

Sau khi làm bài tập này các bạn cần phải hiểu và nắm được những kiến thức sau:

  • Cách nhập xuất cơ bản trong ngôn ngữ lập trình C.
  • Cách sử dụng hàm trong ngôn ngữ lập trình C.
  • Cách sử dụng mảng một chiều trong ngôn ngữ lập trình C.
  • Cách sử dụng vòng lặp for để duyệt các phần tử trong mảng.

Tác giả:

  • Trần Hán Huy – tranhanhuy.wordpress.com

Sách:

  • Bài tập kĩ thuật lập trình C/C++ – Nguyễn Tấn Trần Minh Khang
Xem thêm  Chương trình đào tạo ngành Quản trị nhân lực Đại học Nội vụ

Đề bài

  • 143 Viết hàm tìm chẵn đầu tiên trong mảng các số nguyên. Nếu mảng ko có giá trị chẵn thì hàm trả về -1

Code

int ChanDau(int a[],int n)
{
for(int i=0; i<n; i++)
   {
    if(a[i]%2==0)
    {
         return a[i];
      }
  }
   return -1;
}

Tác giả:

  • Trần Hán Huy – tranhanhuy.wordpress.com

Sách:

  • Bài tập kĩ thuật lập trình C/C++ – Nguyễn Tấn Trần Minh Khang

Đề bài

  • 132 Viết hàm liệt kê các giá trị chẵn trong mảng 1 chiều các số nguyên

Code

void LietKeGiaTriChan(int a[], int n)
{
       for (int i=0;i<n;i++)
       {
              if(a[i]%2==0)
                     printf(“%4d”,a[i]);
       }
}

Bài toán: Hãy tìm giá trị đầu tiên trong mảng một chiều các số nguyên có chữ số đầu tiên là chữ số lẻ. Nếu trong mảng không tồn tại giá
trị như vậy thì hàm sẽ trả về giá trị 0

Ví dụ:

Gia tri thoa man bai toan la: 13

Khong ton tai gia tri thoa man bai toan

Ý tưởng tìm giá trị đầu tiên trong mảng có chữ số đầu tiên là chữ số lẻ

  • Đầu tiên ta viết một hàm check để kiểm tra xem số nguyên a có bắt đầu bằng số lẻ không. Nếu bắt đầu bằng số lẻ thì ta trả về giá trị true, ngược lại thì trả về false.
  • Ta tiến hành duyệt từng phần tử của mảng nếu phần tử nào thỏa mãn tính chất bắt đầu bằng số lẻ thì ta trả về giá trị của phần tử đó và kết thúc hàm. Ngược lại nếu duyệt hết tất cả các phần tử của mảng mà vẫn không tìm được phần tử bắt đầu bằng số lẻ thì ta trả về giá trị 0.
  • for (int i = ; i < n; i++) {

            if (check(a[i]))

                return a[i];

        }

    return ;

     

Xây dựng hàm kiểm tra chữ số đầu tiên là chữ số lẻ

  • Đầu tiên ta lấy giá trị tuyệt đối của phần tử n đang xét.
  • Ta tiến hành lấy từng chữ số của phần tử đó ra, đến khi lấy được chữ số đầu tiên thì dừng lại.
  • n = abs(n);

    while( n > 9){

         n/=10;

    }

  • Sau khi đã lấy được chữ số đầu tiên thì ta tiến hành kiểm tra, nếu nó là số lẻ thì trả về true, nếu chẵn thì trả về false.

Code tìm giá trị đầu tiên trong mảng có chữ số đầu tiên là chữ số lẻ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

#include<iostream>

#include<math.h>

using namespace std;

void NhapMang(int a[], int n) {

    for (int i = ; i < n; i++) {

        cout << “Nhap a[“ << i << “]: “;

        cin >> a[i];

    }

}

bool check(int n) {

    n = abs(n);

    while (n > 9) {

        n /= 9;

    }

    if (n % 2 == 1) return true;

    return false;

}

int Fun(int a[], int n) {

    for (int i = ; i < n; i++) {

        if (check(a[i]))

            return a[i];

    }

    return ;

}

int main() {

    int a[100];

    int n;

    cout << “Nhap vao n: “;

    cin >> n;

    NhapMang(a, n);

    if (Fun(a, n) == )

        cout << “Khong ton tai gia tri thoa man bai toan”;

    else

        cout << “Gia tri thoa man bai toan la: “ << Fun(a, n);

    system(“pause”);

    return ;

}

Sau khi chạy chương trình trên ta có kết quả sau :

Nhap vao n: 4

Nhap a[0]: 21

Nhap a[1]: 13

Nhap a[2]: 53

Nhap a[3]: 26

Gia tri thoa man bai toan la: 13

Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !

Thuộc website Harveymomstudy.com

Xem thêm  Dẫn 6 , 72 lít khí etilen đktc qua dung dịch brom khối lượng brom đã tham gia phản ứng là

Trả lời

Email của bạn sẽ không được hiển thị công khai.