Tổng các phần tử của mảng.

Một phần của tài liệu slide bài giảng nhập môn lập trình mảng và mảng một chiều (Trang 25 - 30)

Cùng Đại học Hoa Sen xây dựng tương lai



Cấp Phát Vùng Nhớ Động

 Cho phép người dùng nhập hoặc thay đổi khích thước mảng

 Cú pháp:

 Cấp vùng nhớ:

Biến_con_trỏ = malloc(sizeof(tên_kiểu));Biến_con_trỏ = calloc(n, sizeof(tên_kiểu)); Biến_con_trỏ = calloc(n, sizeof(tên_kiểu));

 Giải phòng vùng nhớ:

free(tên con trỏ);

Cùng Đại học Hoa Sen xây dựng tương lai



Cấp Phát Vùng Nhớ Động

Ví dụ:

 Khai báo và cấp phát vùng nhớ cho biến con trỏ N:

int *N = (int*)malloc(sizeof(int));

 Khai báo và cấp phát vùng nhớ cho biến trỏ A là một mảng có 20 phần tử: 20 phần tử:

int *A = (int*)malloc(20 * sizeof(int));

hoặc

int *A = (int*)calloc(20, sizeof(int));

 Giải phóng vùng nhớ:

free(N);free(A); free(A);

Cùng Đại học Hoa Sen xây dựng tương lai  Cấp Phát Vùng Nhớ Động – Ví dụ #include <stdio.h> #include <stdlib.h> int main(void) {

int *a, i, n, sum = 0;

printf("\n%s" ,"An array will be created dynamically. \n\n""Input an array size n followed by n integers: "); "Input an array size n followed by n integers: "); scanf("%d", &n);

a = calloc(n, sizeof(int)); /* get space for n ints */for (i = 0; i < n; ++i) scanf("%d", &a[i]); for (i = 0; i < n; ++i) scanf("%d", &a[i]);

for (i = 0; i < n; ++i) sum += a[i];free(a); /* free the space */ free(a); /* free the space */

pri ntf("\n%s%7d\n%s%7d\n\n"," Number of elements:", n,"Sum of the elements:", sum); "Sum of the elements:", sum);

return 0;} }

Cùng Đại học Hoa Sen xây dựng tương lai



Bài tập điểm cộng tại nhà

1. Hãy viết mã giả, vẽ lưu đồ, và viết chương trình cho thuật toán Bubble Sort với phương án tim số lớn nhất và chuyển toán Bubble Sort với phương án tim số lớn nhất và chuyển đến cuối mảng.

2. Giải thuật trình bài trong slide bài giảng cho Bubble sort là chưa được tối ưu. Xem ví dụ sau: chưa được tối ưu. Xem ví dụ sau:

Cho mảng A[] = {2,5,7,1,9}. Sau 1 vòng sắp xếp, mảng trở thành A[] = {1,2,5,7,9}. Như vậy mảng đã được sắp xếp theo thứ tự và chương {1,2,5,7,9}. Như vậy mảng đã được sắp xếp theo thứ tự và chương trình nên dừng lại. Nhưng với giải thuật trình bày trong slide chương trình sẽ chạy hết các vòng lặp. Vì thế nó không tối ưu.

Các em hãy tìm phương án giúp giải thuật được tối ưu hơn.

1. Viết chương trình đếm số chữ hoa cho từng chữ cái trong chuổi ký tự. chuổi ký tự.

Cùng Đại học Hoa Sen xây dựng tương lai

 www.hoasen.edu.vn 30

Bài tập 4:

Viết chương trình nhập n phần tử số nguyên vào mảng. Rồi thực hiện các yêu cầu sau: hiện các yêu cầu sau:

Một phần của tài liệu slide bài giảng nhập môn lập trình mảng và mảng một chiều (Trang 25 - 30)

Tải bản đầy đủ (PPT)

(32 trang)