Lỗi ngớ ngẫn mà không giải thích nổi

#include<iostream>
using namespace std;
int x[10];
bool check = false;
int n;
void reSult(int n){
	for (int i = 1; i <= n; i++)
	{
		cout << x[i];
	}
	cout << endl;
}
void next(int n){
	int k = n;
	while (k>0 && x[k]==1)
	{
		k--;
	}
	if (k == 0)
	{
		check = true;
	}
	else
	{
		x[k] = 1;
		for (int j = k + 1; j <=n ; j++)
		{
			x[j] = 0;
		}
	}
}
void main(){
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		x[i] = 0;
	}
	while (!check)
	{
		reSult(n);
		next(n);
	}
}

Tại sao khi build thì nó báo là lỗi n ở vòng while ở hàm main

Mình chưa debug để xem lỗi thế nào nhưng bạn nên đặt tên biến toàn cục vs địa phương khác nhau đi, nhìn đâu cũng thấy n, loạn cả mắt @@

1 Like

Trong hàm result thì x[10] ko tồn tại nhé, cho i chạy đến 9 thôi

Compiler báo lỗi gì thế bạn, nhìn mãi vẫn không ra lỗi compile :confused:

1 Like

chẳng biết nó báo lỗi hệ thống , tại cho n vào vào result trong hàm main k được

Lỗi gì thì bạn copy thông báo lỗi rồi post lên, thì mọi người mới biết mà giúp bạn chứ.
Bạn cứ nói mập mờ thế chắng ai giúp được bạn đâu.
Bạn cũng nên tham khảo cái này:

1 Like

Mình copy source của bạn về build thấy bình thường mà :slight_smile:

đổi void main() sang int main() xem

Bạn sửa lại tên hàm next(int n) thành Next(int n) là được !! Vì trong c++ cũng có 1 hàm next() nên lúc compiler biên dịch nó báo lỗi do compiler hiểu nhầm là hàm next() của bạn là hàm của c++ (hàm của c++ có 2 tham số đầu vào)

2 Likes

Sao mình chạy nó không báo lỗi vậy ?
Mà chương trình kì vậy taz >>>>> :joy:

1 Like

Chương trình này dùng để làm vậy bạn…Mình chạy thử thấy nó vẫn chạy bình thường mà.thêm cái system(“pause”) cho nó dừng màn hình nhé bạn.

1 Like

Bạn thử đổi void main() thanh int main() thử xem

exactly :smiley:
20 characters :triumph:

cách này được rồi nhé!

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