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
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?