Viết chương trình nhập một dãy số tối đa 50 số rồi in ra màn hình các số trùng nhau của dãy

Ví dụ 1 : Tính trung bình 10 số nguyên nhập vào từ bàn phím, bạn sẽ khai báo 10 biến: a, b, c, d, e, f, g, h, i, j có kiểu int và lập thao tác nhập cho 10 biến này như sau:

       printf["Nhap vao bien a: "];

       scanf["%d", &a];

      10 biến bạn sẽ thực hiện 2 lệnh trên 10 lần, sau đó tính trung bình:

      [a + b + c + d + e + f + g + h + i + j]/10

       Điều này chỉ phù hợp với n nhỏ, còn đối với n lớn thì khó có thể thực hiện được. Vì vậy, khái niệm mảng được sử dụng.

Khai báo

Ví dụ 2 : int ia[10]; với int là kiểu của mảng, ia là tên mảng, 10 là số phần tử của mảng, tức mảng ia có tối đa 10 phần tử

Ý nghĩa: Khai báo một mảng số nguyên gồm 10 phần tử, mỗi phần tử có kiểu int.

Các phần tử của mảng ia được mô tả như sau:

Mảng 10 phần tử nguyên

Từ ví dụ 2 ta có cú pháp khai báo mảng như sau:

Tên_kiểu tên_biến[spt];

Diến giải:

- Tên_kiểu là tên  của kiểu dữ liệu mà bạn muốn khai báo cho mảng

- Tên_biến là tên của mảng mà bạn muốn khai báo

- Spt: là số phần tử tối đa của mảng mà bạn muốn khai báo hay còn gọi là kích thức của mảng

 Tham chiếu đến từng phần tử mảng

Sau khi mảng được khai báo, mỗi phần tử trong mảng đều có chỉ số để tham chiếu. Chỉ số bắt đầu từ 0 đến n-1 [với n là kích thước mảng]. Trong ví dụ 2, ta khai báo mảng 10 phần tử thì chỉ số bắt đầu từ 0 đến 9.

Mảng được đánh số bắt đầu từ 0 

Như vậy, để truy xuất đến phần tử thứ i trong mảng ia ta viết ia[i], trong đó i chỉ được phép nhận một trong các giá trị từ 0 đến 9 vì mảng ia được khia báo chỉ có 10 phần tử

Nhập dữ liệu cho mảng

Mảng là một dãy các phần tử có cùng kiểu dữ liệu, việc nhập dữ liệu cho từng phần tử của mảng cũng giống như nhập dữ liệu cho biến thông thường

Ví dụ 3

for [i = 0; i < 10; i++] //vòng for có giá trị i chạy từ 0 đến 9

{

printf["Nhap vao phan tu thu %d: ", i + 1];

scanf["%d", &ia[i]];

}

Ví dụ 4: Viết chương trình nhập vào n số nguyên. Tính và in ra trung bình cộng.

#include

#include

void main[void]

{

int ia[50], i, in, isum = 0;

printf["Nhap vao gia tri n: "];

scanf["%d", &in];

//Nhap du lieu vao mang

for[i = 0; i < in; i++]

{

printf["Nhap vao phan tu thu %d: ", i + 1];

scanf["%d", &ia[i]]; //Nhap gia tri cho phan tu thu i

}

//Tinh tong gia tri cac phan tu

for[i = 0; i < in; i++]

       isum += ia[i]; //cong don tung phan tu vao isum

printf["Trung binh cong: %.2f\n", [float] isum/in];

getch[];}

Ví dụ 5: Có 4 loại tiền 1, 5, 10, 25 và 50 đồng. Hãy viết chương trình nhập vào số tiền sau đó cho biết số số tiền trên gồm mấy loại tiền, mỗi loại bao nhiêu tờ

#include

#include

#define MAX 5

void main[void]

{

int itien[MAX] = {50, 25, 10, 5, 1}; //Khai bao va khoi tao mang voi 5 phan tu

int i , isotien, ito;

printf["Nhap vao so tien: "];

scanf["%d", &isotien]; //Nhap vao so tien

for [i = 0; i < MAX; i++]

{

ito = isotien/itien[i]; //Tim so to cua loai tien thu i

printf["%4d to %2d dong\n", ito, itien[i]];

isotien = isotien%itien[i]; //So tien con lai sau khi da loai tru cac loai tien da co

}

getch[];

}

Đọc dữ liệu từ mảng

Việc đọc dữ liệu của mảng chúng ta cần chỉ rõ là cần đọc dữ liệu của phần tử thứ mấy trong mảng

Ví dụ 5:

for[i = 0; i < 10; i++]

printf["%3d ", ia[i]];

Sử dụng biến mảng

Ngoài kiểu int, bạn có thể khai báo mảng kiểu char, float, double…

Ví dụ 6: char cloai[20]; float ftemp[10];

Cách tham chiếu, nhập dữ liệu, đọc dữ liệu thực hiện như trên.

Bài tập thực hành.

Xây dựng các hàm để thực hiện các công việc sau

- Hàm Khoi_tao cho phép nhập vào một mảng gồm n phần tử số nguyên

- Hàm In_xuôi và hàm In_nguoc cho phép in mảng ra màn hình theo thứ tự xuôi và ngược

- Hàm Tim_max và hàm Tim_min để tìm giá trị nhỏ nhất và lớn nhất của mảng

- Hàm Tinh_tong cho phép Tính tổng các giá trị trong mảng

- Hàm Tinh_tong_duong và hàm Tinh_tong_am cho phép tính tổng các phần tử có giá trị dương và âm trong mảng

- Hàm Sap_xep_tang và hàm Sap_xep_giam để sắp xếp mảng theo thứ tự tăng dần và giảm dần

- Xây dựng chương trình chính gồm 1 menu như sau:

----------------------------------------------------

MENU CHUONG TRINH

---------------------------------------------------

1: Khoi tao mang

2: In mang ra man hinh

3: In mang dao nguoc ra man hinh

4: Tim gia tri max cua mang

5: Tim gia tri min cua mang

6: Tinh tong

7: Tinh tong cac phan tu duong

8: Tinh tong cac phan tu am

9: Sap xep tang dan

10 Sap xep giam dan

11: Thoat

Moi ban chon so tuong ung:

Khi người sử dụng chọn 1 số tương ứng của mục tương ứng của menu thì gọi đến hàm tương ứng đó để thực hiện

Gợi ý:

- Xây dựng tất cả các hàm tương ứng với yêu cầu của đề bài

- Xây dựng thêm hàm có tên gọi là inmenu để in ra menu như yêu cầu

- Viết hàm main, đầu tiên là gọi hàm inmenu, tiếp đến dùng lệnh switch theo mẫu

switch [ichon]{

            case 1: gọi hàm khoi tạo mảng

                        break;

            case 2: gọi hàm in mảng ra màn hình

                        break;            …

case 10: gọi hàm sắp xếp giảm dần

}

Lưu ý, chương trình chỉ đóng lại khi người sử dụng chọn số 11 [dùng vòng lặp bao bên ngoài lệnh switch, điều kiện dừng khi người sử dụng nhấn số 11].

Ví dụ có video:

Viết chương trình C/C++ nhập vào một mảng n số nguyên sau đó tính tổng các số chia hết cho 3 trong mảng. Tính tổng của các số nằm trong khoảng [10,20]


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

         1. Viết chương trình C++nhập 10 giá trị nguyên, sau đó tìm giá trị lớn nhất, nhỏ nhất, tìm giá trị có tầnsuất xuất hiện nhiều nhất, sắp xếp mảng theo thứ tự tăng dần, giảm dần và hiểnthị kết quả.

2. Viết một chương trình C++ để hiển thị một menu cho phép người dùng lựa chọnhoặc quan sát tất cả bản ghi của sinh viên hoặc chỉ quan sát các bản ghi của mộtsinh viên cụ thể bởi lựa chọn id của sinh viên đó.

3. Viết chương trình C++ để hiển thị một bảng các số như yêu cầu đề bài sau:

1

2

3

4

5

6

7

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25


           4. Viết chương trình C++ để nhập và hiển thị một ma trận có kích thước là 5x5,trong đó: các phần tử trên đường chéo được điền giá trị 0, các phần tử của tamgiác dưới đường chéo được điền các giá trị -1, và ở tam giác trên là được điền với các giá trị 1.
          5. Viết chương trình C++ để tính tổng mỗi hàng, mỗi cột của một ma trận có kíchcỡ n x m, và nếu là ma trận vuông thì tính tổng đường chéo.
          6. Viết chương trình C++ để nhập và hiển thị tam giác Pascal.  hàng đầu tiên và thứ hai được thiếtlập là 1. Bắt đầu từ hàng thứ ba trở đi, mỗi phần tử là tổng của phần tử ngaytrên nó và phần tử bên trái của phần tử ngay trên đó.
         7. Viết chương trình C++ để nhập 10 số nguyên trong một mảng một chiều, sau đósắp xếp và in mảng đó theo thứ tự tăng dần.
         8. Viết chương trình C++ để nhập một ma trận vuông 4x4, tính tổng các phần tửtrên đường chéo và sau đó in kết quả.

----------------------------------------------------------------------------------------------------------------

Download bài giải ở đây.

Video liên quan

Chủ Đề