Tổng hợp bài tập lập trình C cơ bản phần 1

Tổng hợp các bài tập lập trình C cơ bản tới nâng cao phần 1

Trong bài này chúng ta sẽ cùng nhau thực hành các bài tập lập trình C với mức cơ bản. Giúp các bạn rèn luyện nhiều hơn khả năng lập trình và giải quyết bài toán.

Bài 19 trong Serie Lập trình C từ A tới Z

Mục Lục

Bài tập lập trình C cơ bản

Chương trình Hello world

Chương trình Hello World là chương trình kinh điển trong mọi ngôn ngữ lập trình. Ngoài ý nghĩa là in dòng chữ Hello World trên màn hình, chương trình Hello World còn giúp bạn kiểm tra xem phần cài đặt ngôn ngữ lập trình của mình đã ổn hay chưa, đã sẵn sàng để thực thi các chương trình khác hay không.

Ngoài ra, chương trình Hello World còn giúp bạn hiểu thêm về cấu trúc của một chương trình trong ngôn ngữ đó.

Dưới đây là chương trình C để in dòng chữ Hello World trên màn hình:

word image 2024

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2025

Biến

Bài tập lập trình C: Khai báo, gán và in biến có kiểu dữ liệu char

Biến có kiểu dữ liệu (char) lưu giữ giá trị là một ký tự.

word image 2026

word image 2027

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2028

Bài tập lập trình C: Khai báo, gán và in biến có kiểu dữ liệu int)

Biến có kiểu dữ liệu int lưu giữ giá trị là một số nguyên.

word image 2029

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2030

Bài tập lập trình C: Khai báo, gán và in biến có kiểu dữ liệu float

Biến có kiểu dữ liệu float lưu giữ giá trị là một số thực.

word image 2031

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2032

Bài tập lập trình C: Khai báo, gán và in biến có kiểu dữ liệu double

Biến có kiểu dữ liệu double lưu giữ giá trị là một số double.

word image 2033

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2034

Bài tập lập trình C: Khai báo, gán và in biến có kiểu dữ liệu void

void trong C nghĩa là không có gì, không có giá trị. Kiểu dữ liệu này thường được sử dụng khi khai báo con trỏ hoặc khai báo hàm.

word image 2035

Toán tử số học

Các toán tử số học cơ bản bao gồm cộng, trừ, nhân và chia. Các toán tử này được thực hiện trên các kiểu dữ liệu như intfloat và double.

Phép cộng trong C

Chương trình C dưới đây minh họa phép cộng trong C:

word image 2036

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2037

Phép trừ trong C

Chương trình C dưới đây minh họa phép trừ trong C:

word image 2038

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2039

Phép nhân trong C

Chương trình C dưới đây minh họa phép nhân trong C. Bạn chú ý rằng dấu sao (*) được sử dụng làm toán tử nhân trong C.

word image 2040

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2041

Phép chia trong C

Chương trình C dưới đây minh họa phép chia trong C. Ngôn ngữ C sử dụng dấu gạch chéo (/) để làm toán tử chia.

word image 2042

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2043

So sánh hai số nguyên

So sánh hai số nguyên là một trong các bài tập C đơn giản nhất. Với chương trình C này, bạn có thể nhận đầu vào bởi sử dụng hàm scanf() hoặc tự định nghĩa giá trị của các biến.

Để so sánh hai số nguyên, cách đơn giản nhất là sử dụng các lệnh IF và ELSE trong C.

Bắt đầu từ chương trình C này, chúng ta dần làm quen với cách lập giải thuật từ đó viết code cho chương trình C thực sự. Với các cách thực hiện tuần tự như vậy thì mình tin rằng sẽ giúp các bạn mới học ngôn ngữ C phát triển tư duy của mình.

Giải thuật cho bài tập C

Dưới đây là các bước giải thuật đơn giản để giải bài tập C trên:

word image 2044

Chương trình C

Dưới đây là phần code của chương trình C để giải bài tập so sánh hai số nguyên trong C.

word image 2045

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2046

Tìm giá trị lớn nhất trong ba số nguyên

Tìm số lớn nhất trong ba số là một trong các bài tập C đơn giản nhất. Trong chương trình C này, bạn có thể nhận đầu vào bởi hàm scanf() hoặc tự định nghĩa giá trị cho các biến.

Tương tự như so sánh hai số nguyên, với bài này chúng ta cũng sử dụng các lệnh IF và ELSE trong C để giải bài tập C này. Đây là chương trình C minh họa cho cách sử dụng các lệnh IF … ELSE IF trong C.

Trước hết chúng ta cùng tìm hiểu giải thuật cho bài tập C này.

Giải thuật cho bài tập C

Dưới đây là các bước giải thuật đơn giản để giải bài tập C trên:

word image 2047

Chương trình C

Phần dưới đây là phần code của chương trình C thực sự để giải bài tập Tìm giá trị lớn nhất trong C:

word image 2048

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2049

Kiểm tra số chẵn, số lẻ

Bài  toán kiểm tra số chẵn lẻ là một trong các chương trình C điển hình. Với bài toán này, chúng ta sẽ sử dụng các lệnh IF – ELSE trong C để giải.

Giải thuật cho bài tập lập trình C

Dưới đây là các bước giải thuật đơn giản để giải bài tập C trên:

word image 2050

Chương trình C

Dưới đây là phần code chương trình C thực sự để giải bài tập kiểm tra số chẵn lẻ trong C:

word image 2051

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2052

Kiểm tra số âm, số dương

Tương tự như bài tập C kiểm tra số chẵn lẻ, thì đây là bài tập C khá đơn giản giúp bạn làm quen dần với cách sử dụng các lệnh IF-ELSE trong C.

Giải thuật cho bài tập C

Dưới đây là các bước giải thuật đơn giản để giải bài tập C trên:

word image 2053

Chương trình C

Dưới đây là phần code chương trình C thực sự để giải bài tập kiểm tra số âm, số dương trong C:

word image 2054

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2055

Kiểm tra năm nhuận

Bài tập kiểm tra một năm xem có phải là năm nhuận không là một bài tập hơi phức tạp một chút. Trước hết, chúng ta tìm hiểu điều kiện để một năm là năm nhuận:

  • Năm chia hết cho 4 nhưng không chia hết cho 100.
  • Hoặc năm chia hết cho 400.

Giải thuật cho bài tập C

Dưới đây là các bước giải thuật cho bài tập C trên:

word image 2056

Chương trình C

Dưới đây là chương trình C để giải bài tập kiểm tra năm nhuận trong C:

word image 2057

Biên dịch chương trình C trên sẽ cho kết quả:

word image 2058

Tráo đổi giá trị bởi sử dụng biến thứ 3

Trong nhiều trường hợp, lập trình viên cần thực hiện phép tráo đổi giá trị của hai biến. Trong chương này, chúng ta cùng tìm hiểu cách để tráo đổi giá trị của hai biến nguyên, tuy nhiên bạn cũng có thể thực hiện tương tự để tráo đổi hai biến ở bất kỳ kiểu dữ liệu nào khác.

Giá trị của các biến có thể được tráo đổi theo hai cách:

  • Sử dụng biến thứ ba (một biến tạm)
  • Không thông qua biến thứ ba

Giải thuật cho bài tập C

Dưới đây là các bước giải thuật cho bài tập tráo đổi giá trị trong C:

word image 2059

Chương trình C

Dưới đây là chương trình C để giải bài tập tráo đổi giá trị trong C:

word image 2060

Biên dịch chương trình C trên sẽ cho kết quả:

Tráo đổi giá trị trong C

Tráo đổi giá trị không sử dụng biến thứ 3

Trong nhiều trường hợp, lập trình viên cần thực hiện phép tráo đổi giá trị của hai biến. Trong chương này, chúng ta cùng tìm hiểu cách để tráo đổi giá trị của hai biến nguyên, tuy nhiên bạn cũng có thể thực hiện tương tự để tráo đổi hai biến ở bất kỳ kiểu dữ liệu nào khác.

Giá trị của các biến có thể được tráo đổi theo hai cách:

  • Sử dụng biến thứ ba (một biến tạm)
  • Không thông qua biến thứ ba

Cách tráo đổi giá trị hai biến a, b được thực hiện khá đơn giản, bằng cách:

  • Cộng hai số a và b, lưu kết quả vào biến a.
  • Trừ a cho b, lưu kết quả vào biến b, khi đó b bây giờ sẽ giữ giá trị của biến a ban đầu.
  • Tiếp tục trừ a cho b (vừa được lưu) và lưu kết quả vào biến a, khi đó a sẽ giữ giá trị của biến b ban đầu.

Giải thuật cho bài tập lập trình C

Dưới đây là các bước giải thuật cho bài tập tráo đổi giá trị trong C:

word image 2061

Chương trình C

Dưới đây là chương trình C để giải bài tập tráo đổi giá trị trong C:

word image 2062

Biên dịch chương trình C trên sẽ cho kết quả:

Tráo đổi giá trị trong C

Giải phương trình bậc 2

Giải phương trình bậc hai là bài tập khá quen thuộc khi bạn mới học lập trình. Đây là một trong các bài toán điển hình về các lệnh rẽ nhánh trong C, đó là các lệnh IF-ELSE. Tương ứng với mỗi trường hợp, bạn sẽ có một nhánh khác nhau.

Chương trình C

Dưới đây là chương trình C để giải phương trình bậc hai trong C:

word image 2063

word image 2064

Biên dịch chương trình C trên sẽ cho kết quả:

Giải phương trình bậc hai trong C Giải phương trình bậc hai trong C Giải phương trình bậc hai trong C Giải phương trình bậc hai trong C

Bài tập lập trình C về vòng lặp

In các số từ 1 – 10 theo thứ tự tăng dần

Đây là một bài tập đơn giản giúp bạn làm quen với cách sử dụng vòng lặp for trong C.

Chương trình C

Dưới đây là chương trình C để in các số 1-10 theo thứ tự tăng dần.

word image 2065

Biên dịch chương trình C trên sẽ cho kết quả:

In các số theo thứ tự tăng dần trong C

In các số từ 1 – 10 theo thứ tự giảm dần

Yêu cầu là in các số từ 1 tới 10 theo thứ tự giảm dần. Với bài tập C này, chúng ta chỉ cần sử dụng một vòng lặp for trong C.

Chương trình C

Dưới đây là chương trình C để in các số 1-10 theo thứ tự giảm dần.

word image 2066

Biên dịch chương trình C trên sẽ cho kết quả:

In các số theo thứ tự giảm dần trong C

In bảng số

In một bảng số thỏa mãn điều kiện:

  • Bảng số gồm 10 hàng và 10 cột
  • Các giá trị trong cột là liên tiếp nhau
  • Các giá trị trong hàng hơn kém nhau 10

Với bài tập C này, chúng ta sử dụng lồng vòng lặp: vòng lặp bên ngoài sẽ điều khiển các hàng và vòng lặp bên trong điều khiển các cột.

Chương trình C

Dưới đây là chương trình C để giải bài tập C trên:

word image 2067

Biên dịch chương trình C trên sẽ cho kết quả:

In bảng số trong C

In bảng nhân

In một bảng nhân của một số bất kỳ với các số từ 1 tới 10 và hiển thị kết quả.

Với bài tập C này, chúng ta chỉ sử dụng một vòng lặp và tăng dần giá trị của số nhân lên.

Chương trình C

Dưới đây là chương trình C để giải bài tập C trên:

word image 2068

Biên dịch chương trình C trên sẽ cho kết quả:

In bảng nhân trong C

In bảng cửu chương rút gọn

Bảng cửu chương rút gọn là bảng có hàng là kết quả của phép nhân một số với các giá trị từ 1 tới 10. Chúng ta sẽ in 9 hàng tương ứng với các số từ 2 tới 10.

Với bài tập này, chúng ta sẽ sử dụng lồng vòng lặp: vòng lặp bên ngoài điều khiển số hàng và vòng lặp bên trong điều khiển số cột của bảng.

Chương trình C

Dưới đây là chương trình C để giải bài tập C trên:

word image 2069

Biên dịch chương trình C trên sẽ cho kết quả:

In bảng cửu chương trong C

In các số chẵn

Yêu cầu là in các số chẵn trong dãy số từ 1 tới 10 bởi sử dụng vòng lặp trong ngôn ngữ C.

Với bài tập C này, ngoài sử dụng vòng lặp, chúng ta cần kết hợp thêm một lệnh để kiểm tra điều kiện xem số đó là số chẵn hay lẻ, nếu là số chẵn thì in còn nếu là số lẻ thì không. Chúng ta sử dụng lệnh IF và toán tử % (để lấy phần dư) trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập C trên:

word image 2070

Biên dịch chương trình C trên sẽ cho kết quả:

In các số chẵn trong C

In các số lẻ

Yêu cầu là in các số lẻ trong dãy số từ 1 tới 10 bởi sử dụng vòng lặp trong ngôn ngữ C.

Với bài tập C này, ngoài sử dụng vòng lặp, chúng ta cần kết hợp thêm một lệnh để kiểm tra điều kiện xem số đó là số chẵn hay lẻ, nếu là số lẻ thì in còn nếu là số chẵn thì không. Chúng ta sử dụng lệnh IF và toán tử % (để lấy phần dư) trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập C trên:

word image 2071

Biên dịch chương trình C trên sẽ cho kết quả:

In các số lẻ trong C

Vẽ tam giác trong C (lồng vòng lặp)

Vẽ tam giác sao đều

Hình 1. Vẽ một tam giác sao đều trong C thỏa mãn điều kiện:

  • Các cạnh bằng nhau
  • Một đỉnh nằm phía trên màn hình và cạnh đối diện với đỉnh này nằm dưới.

Với bài tập này, chúng ta sử dụng ba vòng lặp. Một vòng lặp bên ngoài để điều khiển số hàng. Hai vòng lặp bên trong: một vòng lặp để in các khoảng trống, một vòng lặp để in các dấu sao.

Chương trình C

Dưới đây là chương trình C để giải bài tập vẽ tam giác sao đều trong C:

word image 2072

Biên dịch chương trình C trên sẽ cho kết quả:

Vẽ tam giác sao đều trong C

Hình 2. Vẽ một tam giác sao đều trong C thỏa mãn điều kiện:

  • Các cạnh bằng nhau
  • Một đỉnh nằm phía dưới màn hình và cạnh đối diện với đỉnh này nằm trên.

Với bài tập này, chúng ta sử dụng ba vòng lặp. Một vòng lặp bên ngoài để điều khiển số hàng. Hai vòng lặp bên trong: một vòng lặp để in các khoảng trống, một vòng lặp để in các dấu sao.

Chương trình C

Dưới đây là chương trình C để giải bài tập vẽ tam giác sao đều trong C:

word image 2073

Biên dịch chương trình C trên sẽ cho kết quả:

Vẽ tam giác sao đều trong C

Vẽ tam giác sao vuông cân

Hình 1. Vẽ tam giác sao vuông cân trong C thỏa mãn điều kiện:

  • Đỉnh nằm phía trên màn hình
  • Cạnh góc vuông bên cạnh trái màn hình và cạnh góc vuông còn lại nằm ở phần dưới màn hình.

Với bài tập C này, chúng ta chỉ cần hai vòng lặp: vòng lặp bên ngoài điều khiển số hàng, vòng lặp bên trong chịu trách nhiệm in dấu sao và khoảng trống.

Chương trình C

Dưới đây là chương trình C để giải bài tập vẽ tam giác sao vuông cân trong C:

word image 2074

Biên dịch chương trình C trên sẽ cho kết quả:

Vẽ tam giác sao vuông cân trong C (Phần 1)

Hình 2. Vẽ tam giác sao vuông cân trong C thỏa mãn điều kiện:

  • Cạnh huyền nằm về phía trái màn hình.

Với bài tập C này, chúng ta chỉ cần hai vòng lặp: vòng lặp bên ngoài điều khiển số hàng, vòng lặp bên trong chịu trách nhiệm in dấu sao và khoảng trống.

Chương trình C

Dưới đây là chương trình C để giải bài tập vẽ tam giác sao vuông cân trong C:

word image 2075

Biên dịch chương trình C trên sẽ cho kết quả:

Vẽ tam giác sao vuông cân trong C (Phần 2)

Vẽ tam giác Floyd

Tam giác Floyd là một tam giác vuông được tạo từ các số tự nhiên. Các số trong tam giác Floyd có giá trị tăng dần. Dưới đây là hình minh họa cho tam giác Floyd đơn giản gồm các số từ 1 tới 10.

Vẽ tam giác Floyd trong C

Với bài tập C này, chúng ta sử dụng hai vòng lặp: vòng lặp bên ngoài điều khiển số hàng, vòng lặp bên trong để in giá trị các số tăng dần.

Chương trình C

Dưới đây là chương trình C để giải bài tập vẽ tam giác Floyd trong C:

word image 2076

Biên dịch chương trình C trên sẽ cho kết quả:

Vẽ tam giác Floyd trong C

Vẽ tam giác Pascal

Bài tập vẽ tam giác Pascal là bài tập điển hình của sinh viên trong khi học về các ngôn ngữ lập trình. Bạn theo dõi hình minh họa tam giác Pascal sau:

Vẽ Tam giác Pascal trong C

Tam giác Pascal có qui tắc sau:

  • Tất cả các giá trị bên ngoài tam giác được xem như là 0.
  • Hàng đầu tiên sẽ là 0 1 0, trong đó chỉ có giá trị 1 có được một khoảng trống trong tam giác Pascal, còn 0 là không nhìn thấy.
  • Hàng thứ hai được tạo bằng cách cộng hai số liên tiếp nhau từ hàng thứ nhất: (0 + 1) và (1 + 0).
  • Các hàng còn lại cũng được tạo bằng cách cộng như trên. Ví dụ với hàng thứ ba là cộng các số liên tiếp nhau từ hàng thứ hai: (0 + 1), (1 + 1) và (1 + 0).

Từ các qui tắc trên, trước hết chúng ta viết một hàm để tính các giá trị của tam giác Pascal bởi sử dụng đệ qui (tất nhiên là bạn có thể sử dụng cách khác). Trong hàm main(), chúng ta sẽ sử dụng ba vòng lặp. Một vòng lặp bên ngoài để điều khiển số hàng. Hai vòng lặp bên trong: một vòng lặp để in khoảng trống và một vòng lặp để in giá trị.

Chương trình C

Dưới đây là chương trình C để giải bài tập vẽ tam giác Pascal trong C:

word image 2077

word image 2078

Biên dịch chương trình C trên sẽ cho kết quả:

Vẽ tam giác Pascal trong C

Bài tập C về mảng một chiều (1 – D Array)

In một mảng

Chương trình C này sẽ giúp bạn hiểu cách in một mảng trong C. Chúng ta cần khai báo và định nghĩa một mảng và sau đó sử dụng một vòng lặp để duyệt qua tất cả các phần tử trong mảng. Tại mỗi vòng lặp, chúng ta sẽ in một giá trị tại một chỉ mục trong mảng.

Chương trình C để in mảng

Dưới đây là chương trình C để giải bài tập in các phần tử của một mảng trong C:

word image 2079

Biên dịch chương trình C trên sẽ cho kết quả:

Cách in mảng trong C

In một mảng theo chiều đảo ngược

Để in mảng theo thứ tự đảo ngược, bạn cần biết trước độ dài của mảng. Sau đó chúng ta sử dụng một vòng lặp bắt đầu từ chỉ mục cuối cùng (là độ dài của mảng) đến giá trị 0 và trong mỗi vòng lặp sẽ in giá trị tại chỉ mục đó.

Chương trình C để in mảng

Dưới đây là chương trình C để giải bài tập in các phần tử của một mảng theo chiều đảo ngược trong C:

word image 2080

Biên dịch chương trình C trên sẽ cho kết quả:

Cách in mảng theo chiều đảo ngược trong C

Tính tổng giá trị các phần tử trong mảng

Chương trình C này giúp bạn hiểu được cách đọc các giá trị trong một mảng. Để giải bài tập C này, chúng ta sẽ sử dụng một vòng lặp và tính tổng tất cả các giá trị của mảng.

Chương trình C

Dưới đây là chương trình C để giải bài tập tính tổng giá trị các phần tử của một mảng trong C:

word image 2081

Biên dịch chương trình C trên sẽ cho kết quả:

Tìm tổng giá trị các phần tử của mảng trong C

Tính giá trị trung bình của một mảng

Chương trình C này giúp bạn hiểu được cách đọc các giá trị trong một mảng. Để giải bài tập C này, chúng ta sẽ sử dụng một vòng lặp và tính tổng tất cả các giá trị của mảng. Sau đó chia giá trị này cho số phần tử trong mảng sẽ thu được giá trị trung bình của tất cả các giá trị của mảng đó.

Chương trình C

Dưới đây là chương trình C để giải bài tập tính giá trị trung bình các phần tử của một mảng trong C:

word image 2082

Biên dịch chương trình C trên sẽ cho kết quả:

Tìm giá trị trung bình của mảng trong C

Tìm các phần tử lớn nhất của mảng

Chương trình tìm giá trị lớn nhất của mảng là một chương trình C điển hình về mảng. Chương trình này giúp bạn hiểu cách sử dụng vòng lặp, mảng, lệnh IF và các toán tử điều kiện trong C.

Để giải bài tập C này, chúng ta duyệt qua từng phần tử trong mảng và kiểm tra xem phần tử đó có phải là lớn nhất không.

Chương trình C

Dưới đây là chương trình C để giải bài tập tìm giá trị lớn nhất của mảng trong C:

word image 2083

Biên dịch chương trình C trên sẽ cho kết quả:

Tìm phần tử lớn nhất của mảng trong C

Tìm các phần tử lớn thứ hai của mảng

Chương trình tìm giá trị lớn thứ hai của mảng là một chương trình C điển hình về mảng. Chương trình này giúp bạn hiểu cách sử dụng vòng lặp, mảng, lệnh IF và các toán tử điều kiện trong C.

Để giải bài tập C này, chúng ta duyệt qua từng phần tử trong mảng và kiểm tra xem phần tử đó có phải là lớn thứ hai không.

Chương trình C

Dưới đây là chương trình C để giải bài tập tìm giá trị lớn thứ hai của mảng trong C:

word image 2084

Biên dịch chương trình C trên sẽ cho kết quả:

Tìm phần tử lớn thứ hai của mảng trong C

Tìm các phần tử nhỏ nhất của mảng

Chương trình tìm giá trị nhỏ nhất của mảng là một chương trình C điển hình về mảng. Chương trình này giúp bạn hiểu cách sử dụng vòng lặp, mảng, lệnh if và các toán tử điều kiện trong C.

Để giải bài tập C này, chúng ta duyệt qua từng phần tử trong mảng và kiểm tra xem phần tử đó có phải là nhỏ nhất không.

Chương trình C

Dưới đây là chương trình C để giải bài tập tìm giá trị nhỏ nhất của mảng trong C:

word image 2085

Biên dịch chương trình C trên sẽ cho kết quả:

Tìm phần tử nhỏ nhất của mảng trong C

Cách sao chép giá trị từ một mảng này sang một mảng khác

Sao chép mảng liên quan tới việc sao chép các giá trị tương ứng với chỉ mục của mảng này với mảng kia.

Để giải bài tập C này chúng ta cần biết trước độ dài của mảng ban đầu (mảng original). Mảng sao (mảng copied) phải có độ dài bằng độ dài của mảng ban đầu. Sử dụng vòng lặp để duyệt qua từng giá trị của mảng ban đầu và sao chép sang mảng sao.

Chương trình C

Dưới đây là chương trình C để giải bài tập sao chép mảng trong C:

word image 2086

Biên dịch chương trình C trên sẽ cho kết quả:

Sao chép mảng trong C

Cách sao chép giá trị một mảng này sang mảng khác với chiều đảo ngược

Cũng giống như cách sao chép mảng trong phần trước, nhưng với cách sao chép này thì các phần tử trong mảng sao (mảng copied) có thứ tự bị đảo ngược so với mảng ban đầu (mảng original).

Tương tự để giải bài tập lập trình C này chúng ta sẽ sử dụng vòng lặp trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập sao chép mảng trong C:

word image 2087

Biên dịch chương trình C trên sẽ cho kết quả:

Sao chép mảng trong C

Chia một mảng thành hai mảng

Để giải bài tập lập trình C này, chúng ta cần kiểm tra xem phần tử của mảng ban đầu là chẵn hay lẻ. Nếu là chẵn thì lưu giữ giá trị vào mảng chẵn (mảng even), nếu là lẻ thì lưu giữ vào mảng lẻ (mảng odd).

Chúng ta giải bài tập C trên với sự trợ giúp của vòng lặp và toán tử % trong C. Bạn cần lưu ý thêm một điều nữa là tổng kích cỡ của hai mảng chẵn và mảng lẻ bằng với mảng ban đầu

Chương trình C

Dưới đây là chương trình C để giải bài tập chia một mảng thành hai mảng: mảng chẵn và mảng lẻ trong C:

word image 2088

word image 2089

Biên dịch chương trình C trên sẽ cho kết quả:

Chia một mảng thành hai mảng trong C

Trộn hai hay nhiều mảng thành một mảng

Bài tập C này có nhiều cách gọi: trộn hai mảng, nối hai mảng, ghép hai mảng hay cộng hai mảng, … Dù có nhiều cách gọi khác nhau đi chăng nữa thì đây cũng chỉ là một bài tập để nối ghép các giá trị của hai mảng để thành một mảng duy nhất.

Bài tập là trộn hai mảng một chiều: một mảng chẵn, một mảng lẻ thành một mảng một chiều có thứ tự tăng dần.

Qua các chương trước chúng ta đã biết cách sao chép mảng thì với bài tập này mình tin rằng các bạn sẽ hiểu và làm được.

Chương trình C

Dưới đây là chương trình C để giải bài tập trộn mảng trong C:

word image 2090

word image 2091

Biên dịch chương trình C trên sẽ cho kết quả:

Trộn hai mảng thành một mảng trong C

Bài tập C về mảng hai chiều (2 – D Array)

Kiểm tra ma phương (Magic Square)

Ma phương (Magic Square) là gì ?

Có lẽ một số bạn chưa biết đến khái niệm Ma phương (Magic Square). Mình xin đưa ra khái niệm này như sau:

Ma phương (Magic Square) là một dãy gồm n2 số nguyên dương sắp xếp trong một hình vuông kích thước n x n chia thành n2 ô vuông với n hàng và n cột, sao cho tổng số các số trên mỗi hàng, mỗi cột và trên hai đường chéo đều bằng nhau.

Chương trình C

Dưới đây là chương trình C để giải bài tập kiểm tra ma trận vuông trong C:

word image 2092

word image 2093

word image 2094

Biên dịch chương trình C trên sẽ cho kết quả:

Kiểm tra ma phương (Magic Square) trong C

Trừ hai ma trận

Khi các ma trận có cùng kích thước thì chúng ta có thể thực hiện phép cộng hoặc trừ với các ma trận này. Bài tập trừ hai ma trận trong C là bài tập cơ bản minh họa cách khởi tạo và truy cập các phần tử trong mảng hai chiều trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập trừ hai ma trận trong C:

word image 2095

word image 2096

word image 2097

Biên dịch chương trình C trên sẽ cho kết quả:

Trường hợp hai ma trận không cùng kích cỡ:

Trừ hai ma trận trong C

Trường hợp hai ma trận cùng kích cỡ:

Trừ hai ma trận trong C

Cộng hai ma trận

Khi các ma trận có cùng kích thước thì chúng ta có thể thực hiện phép cộng hoặc trừ với các ma trận này. Bài tập cộng hai ma trận trong C là bài tập cơ bản minh họa cách khởi tạo và truy cập các phần tử trong mảng hai chiều trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập cộng hai ma trận trong C:

word image 2098

word image 2099

word image 2100

Biên dịch chương trình C trên sẽ cho kết quả:

Trường hợp hai ma trận không cùng kích cỡ:

Cộng hai ma trận trong C

Trường hợp hai ma trận cùng kích cỡ:

Cộng hai ma trận trong C

Tính đường chéo của ma trận

Tổng đường chéo chỉnh bằng tổng tất cả các phần tử nằm trên đường chéo chính của ma trận . Bài tập tính tổng đường chéo chính của ma trận trong C là bài tập cơ bản minh họa cách khởi tạo và truy cập các phần tử trong mảng hai chiều trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập tính tổng đường chéo chính của ma trận trong C:

word image 2101

word image 2102

Biên dịch chương trình C trên sẽ cho kết quả:

Tính tổng đường chéo ma trận trong C

Tính tổng tất cả các phần tử của ma trận

Đây là bài tập C cơ bản giúp bạn hiểu cách khởi tạo và truy cập các phần tử của mảng hai chiều trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập tính tổng tất cả các phần tử của ma trận trong C:

word image 2103

word image 2104

Biên dịch chương trình C trên sẽ cho kết quả:

Tính tổng tất cả phần tử của ma trận trong C

Tìm ma trận chuyển vị

Ma trận chuyển vị là một ma trận ở đó các hàng được thay thế bằng các cột, và ngược lại. Đây là chương trình C cơ bản minh họa cách tạo và truy cập các phần tử của mảng hai chiều trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập tìm ma trận chuyển vị của ma trận đã cho trong C:

word image 2105

word image 2106

Biên dịch chương trình C trên sẽ cho kết quả:

Tìm ma trận chuyển vị trong C

Tìm ma trận nghịch đảo

Dựa vào phần lý thuyết đã học ở môn Đại số, bạn hãy viết chương trình C để tìm ma trận nghịch đảo của một ma trận đã cho. Đây là bài tập C khá phức tạp và đỏi hỏi bạn cần biết vận dụng thuần thục cách khởi tạo và cách truy cập các phần tử của mảng hai chiều trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập tìm ma trận nghịch đảo trong C:

word image 2107

word image 2108

word image 2109

Biên dịch chương trình C trên sẽ cho kết quả:

Tìm ma trận nghịch đảo trong C

Nhân hai ma trận

Dựa vào phần lý thuyết đã học trong môn Đại số, bạn hãy viết chương trình C để nhân hai ma trận đã cho. Đây là bài tập C khá phức tạp và đỏi hỏi bạn cần biết vận dụng thuần thục cách khởi tạo và cách truy cập các phần tử của mảng hai chiều trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập nhân hai ma trận trong C:

word image 2110

word image 2111

word image 2112

Biên dịch chương trình C trên sẽ cho kết quả:

Nhân hai ma trận trong C

Lời Kết

Hy vọng sau khi hoàn thành các bài tập lập trình C này, các bạn có thể năm rõ thêm các cách giải toán với C. Các kiến thức cơ bản ở những phần trước chúng ta học.

Nếu cảm thấy bài viết có ích hay đánh giá và chia sẻ cho bạn bè. Đừng quên tham gia nhóm Nghiện lập trình để cùng trao đổi và kết nối nhé!

5/5 - (1 bình chọn)

Trả lời

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