Lỗi biến đang được sử dụng mà không được khởi tạo

em có viết 1 chương trình kiểm tra số nguyên tố như sau:

#include<iostream>
#include<iomanip>

using namespace std;

int main()
{
	int n, i ;
	cout << "nhap so nguyen n, n = " ;
	cin >> n;
	cout << endl;
	bool c;
	for (i=2;i<n/2;i++)
		if (n%i==0)
		{
			cout << n << " khong phai so nguyen to" << endl;
			c = false ;
			break;
		}
	if (c)
		cout << n << " la so nguyen to " << endl;
	system("pause");
	return 0;
}

Khi nhập số nguyên tố thì bị báo lỗi

The variable 'c' is being used without being initialized

Mong các tiền bối giải thích ạ

Theo bạn thì biến bool c của bạn được khởi tạo giá trị tại câu lệnh nào và tại thời điểm nào?

mình nghĩ khi mà n chia hết cho i thì biến bool được khởi tạo và gán giá trị là false luôn
Mà khi khai báo biến bool c trong vòng lặp if cũng không được là sao vậy

Nghĩa là khi bạn nhập số nguyên tố, câu lệnh if trong vòng lặp for sẽ không bao giờ được thực thi.

mình nghĩ không thực thi thì thôi chứ. Vậy có cách nào tối ưu code hơn k ạ

Thì lúc bạn khai báo biến bool c bạn cứ gán cho nó bằng true luôn có ảnh hưởng gì tới cấu trúc chương trình đâu.

oh, cảm ơn bạn :joy::joy::joy:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?