7 Lỗi Thường Gặp Khi Lập Trình C

int main() { int x; cin >> x; cout << x; return 0; }

2. Biến chưa được khởi tạo giá trị

int main() { int count; while (count < 100) { cout << count; count++; } return 0; }

Khi bạn khởi tạo một biến trong hàm main, các biến không được khởi tạo từ 0. Trong đoạn code trên, số đếm có thể là bất kì một số nào trong phạm vi int. Để khắc phục các lỗi này thì bạn nên khởi tạo giá trị kèm luôn trong khi khai báo biến.

int main() { int count = 0; while (count < 100) { cout << count; count++; } return 0; }

Hoặc cũng có thể khởi tạo biến toàn cục vì khác với biến trong hàm main, biến toàn cục khi được khai báo luôn có giá trị là 0 hoặc NULL

int count; int main() { while (count < 100) { cout << count; count++; } return 0; }

3. Sử dụng dấu chấm phẩy

Rõ ràng là trong C++, mọi hàm đều phải kết thúc bởi dấu chấm phẩy, nhưng với những người mới bắt đầu lập trình C++ thì việc thiếu dấu chấm phẩy xảy ra rất thường xuyên.

Bên cạnh đó, đôi kh dụng dấy chấm phẩy không đúng lúc cũng khiến chương trình chạy không như ý muốn như chương trình dưới đây in ra 10 dòng “Hello”

int main() { for (int i = 1; i <= 10; i++); cout << “Hellon”; }

Đoạn code trên bị thừa dấu chấm phẩy ở vòng for, do đó chỉ in ra 1 dòng “Hello”. Do đó dấu chấm phẩy cũng là một yếu tố hết sức quan trọng và cần kiểm soát cẩn thận trong code của bạn. Chương trình đúng thì sẽ là như này.

int main() { for (int i = 1; i <= 10; i++) cout << “Hellon”; }

4. Đặt biến thành giá trị chưa được khởi tạo

int main() { int a, b; int sum = a + b; cout << “Nhập 2 số cần tính tổng”; cin >> a; cin >> b; cout << “Tổng là: ” << sum; }

Trong chương trình trên, biến sum được coi như là tổng của 2 giá trị a, b nhưng a và b đều chưa được khởi tạo. Đối vỡi những lập trình viên mới bắt đầu, một vài người nghĩ rằng nếu gán một biến bằng kết quả phép toán dựa trên các biến khác thì khi thay đổi các biến trong phép tính thì biến kết quả cũng thay đổi theo. Trong C++ thì không như vậy, đó là thỏa thuận một lần. Khi bạn gán giá trị cho một biến, đó sẽ mãi là giá trị của nó cho đến khi bạn gán lại giá trị khác cho biến đó. Trong chương trình trên, vì a và b không được khởi tạo, tổng sẽ là một số ngẫu nhiên không xác định bất kể người dùng nhập gì.Để khắc phục lỗi này thì chúng ta sửa lại như sau.

int main() { int a, b; int sum; cout << “Nhập 2 số cần tính tổng”; cin >> a; cin >> b; sum = a + b; cout << “Tổng là: ” << sum; }

5. Vòng lặp vượt quá giá trị của mảng

int a[10]; for(int i = 1; i <= 10; i++) cout << a[i];

Hãy nhớ rằng trong C++ thì mảng bắt đầu từ vị trí 0, trong khai báo trên mảng a có 10 phần tử bắt đầu từ vị trí 0 đến vị trí 9, do đó vòng lặp chạy như trên sẽ cho kết quả sai, phải sửa lại như thế này.

int a[10]; for(int i = 0; i <= 9; i++) cout << a[i];

6. Sử dụng một dấu bằng duy nhất trong để kiểm tra đẳng thức

Hãy thử chạy chương trình dưới đây.

#include <bits/stdc++.h> int main() { int a = 1, b = 2; while (a = b) { cout << “a bang b”; } }

Chúng ta thấy vòng lặp sẽ không bao giờ kết thúc. Lý do ở đây là vì sử dụng ‘=’ là gán giá trị thay vì ‘==’ là so sánh, ở đây a = b là một phép gán hoàn toàn hợp pháp nên nó sẽ gán mãi như thế, do đó vòng lặp không thể dừng được. Vì vậy ở đây phải sử dụng chính xác là dấu ‘==’.

#include <bits/stdc++.h> int main() { int a = 1, b = 2; while (a == b) { cout << “a bang b”; } }

7. Hàm chưa được khai báo

Thử biên dịch đoạn code sau

int main() { solve(); return 0; } void solve() { // do something }

Khi biên dịch chương trình trên, các bạn sẽ nhận về một lỗi. Trình biên dịch không biết hàm solve là hàm gì. Do đó bạn phải khai báo một hàm có tên là solve trước hàm main

void solve(); int main() { solve(); return 0; } void solve() { // do something }

Hoặc đơn giản hơn là viết luôn hàm solve trước hàm main như sau

void solve() { // do something } int main() { solve(); return 0; }

Tạm kết

Qua bài viết của mình, có lẽ các bạn cũng đã hiểu được sơ sơ về các lỗi thường gặp cho lập trình viên C++ khi mới bắt đầu. Một số lỗi không chỉ gặp ở C++ mà còn gặp ở các ngôn ngữ khác. Do đó hãy thường xuyên đọc các blog hay, mới và luyện tập liên tục để hiểu rõ hơn về các ngôn ngữ mà mình đang code nhé.

Related Posts

Cách dắt xe máy lùi: Hướng dẫn và kỹ năng cần thiết

Học cách dắt xe máy lùi để di chuyển an toàn và thuận tiện trên đường. Tìm hiểu kỹ năng và các bước chuẩn bị trong bài viết này.

Dây Bù Nhiệt Là Gì? Tất Tần Tật Những Thông Tin Bạn Cần Biết

Tìm hiểu về dây bù nhiệt, sản phẩm không thể thiếu trong các ngành công nghiệp. Bài viết giải đáp câu hỏi “dây bù nhiệt là gì?

Cách trị bọng mắt và quầng thâm tại nhà – Khám phá ngay!

Tìm hiểu cách trị bọng mắt và quầng thâm tại nhà và các phương pháp tự nhiên đơn giản để loại bỏ chúng một cách hiệu quả. Xem ngay!

Lollipop tiếng Anh là gì? Tất cả những gì bạn cần biết về kẹo mút này

Tìm hiểu về lollipop tiếng Anh là gì và nguồn gốc của nó. Bài viết cung cấp thông tin chi tiết về loại kẹo mút này.

Đột quỵ nên ăn gì – Tất cả những gì bạn cần biết để phục hồi sức khỏe sau đột quỵ

Đọc ngay bài viết “Đột quỵ nên ăn gì – Tất cả những gì bạn cần biết để phục hồi sức khỏe” và tìm hiểu các loại thực phẩm có lợi cho sức khỏe sau khi bị đột quỵ.

Liên nhục có tác dụng gì? Tìm hiểu về “thần dược” trong y học truyền thống Việt Nam

Liên nhục là một loại dược liệu quý được sử dụng rộng rãi trong y học truyền thống Việt Nam. Đây là một sản phẩm tự nhiên,…