30/09/2018, 22:06

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 ạ

... viết 00:11 ngày 01/10/2018

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?

viết 00:18 ngày 01/10/2018

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

... viết 00:17 ngày 01/10/2018

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.

viết 00:13 ngày 01/10/2018

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 ạ

... viết 00:16 ngày 01/10/2018

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.

viết 00:20 ngày 01/10/2018

oh, cảm ơn bạn

Bài liên quan
0