Code in ra các số hoàn chỉnh sai ở đâu?

Có phải trong hàm inHoanChinh bạn sẽ kiểm tra xem biến hc1 (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.

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?