Có phải trong hàm inHoanChinh
bạn sẽ kiểm tra xem biến hc
là 1
(true) hay 0
(false) để xem in ra hoàn chỉnh hay không hoàn chỉnh đúng không. Nhưng khó ở chỗ trong hàm inHoanChinh
của bạn biến hc
vô danh. Vì tất cả xử lí nó nằm ở main()
. Một điều nữa là ở main()
bạn đang kiểm tra số hoàn chỉnh cho người ta nhập vào thôi, chứ đâu phải các số trong khoảng từ số đầu đến số cuối.
Code in ra các số hoàn chỉnh sai ở đâu?
1 Like
à nhầm chỗ đấy hình như là if(HoanChinh(1))
Mình gợi ý bạn thế này
int ktHoanChinh(số cần kiểm tra)
{
thuật toán của bạn
nếu đúng thì trả về 1
trả về 0 nếu ngược lại
}
void inHoanChinh(đầu, cuối)
{
chạy for và cho một biến nhận các giá trị là các số từ đầu đến đuôi
Sử dụng hàm ktHoanChinh kiểm tra từng số một
}
int main()
{
nhập đầu;
nhập cuối
gọi hàm inHoanChinh(đầu, cuối);
}
2 Likes
Viết hàm inHoanChinh() sau, hàm này in ra các số hoàn chỉnh trong khoảng từ số đầu đến số cuối: void inHoanChinh ( int dau, int cuoi);
nếu mà đề chi như thế này thôi thì sao b
Nếu không cho sử dụng hàm khác mà chỉ một cái đó thôi thì đương nhiên bạn phải đưa việc kiểm tra vào trong hàm inHoanChinh
. Cứ mỗi số bạn lại chạy kiểm tra.
Mà mình nghĩ là phải dùng hàm khác kiểm tra dùm thì logic
mới cao được
1 Like
đề bài mk đọc cũng chả hiểu nên cảm thấy khó sao yk