30/09/2018, 22:07

Bài toán kiểm tra số nguyên tố

Mọi người cho em hỏi tại sao khi em khai báo i=0 ( chỗ khoanh đỏ ) thì chương trình lại không chạy được .( Em dùng debug của code:blocks thì nhận ra sau lệnh for i không tăng lên 1 mà giữ nguyên là 0, khó hiểu quá ! )


Em cũng tham khảo trên diễn đàn 1 số cách để kiểm tra số nguyên tố , có anh đưa ra đoạn code như sau em không hiểu ( làm sao mà vừa return 0 xong ở dưới lại return 1 , thế hóa ra nhập số nào vào nó cũng return 1 ạ ) mọi người giải thích em với !!

for (int i = 2; i <= sqrt((float)soA); i ++)
{
    if (soA%i==0)
    {
        return 0;
    }
}
return 1;

}

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

Mọi người cho em hỏi tại sao khi em khai báo i=0 ( chỗ khoanh đỏ ) thì chương trình lại không chạy được

Do compiler thôi :v Có thể xem tại đây: http://stackoverflow.com/questions/24881/how-do-i-fix-for-loop-initial-declaration-used-outside-c99-mode-gcc-error
Khai báo i bên ngoài FOR là được.

làm sao mà vừa return 0 xong ở dưới lại return 1 , thế hóa ra nhập số nào vào nó cũng return 1 ạ

Return 0 hoặc 1 xong là nó cũng kết thúc cả hàm rồi, nếu dòng return 0 được chạy thì hàm sẽ kết thúc ngay tại thời điểm đó luôn.

Đinh Thiện Khải viết 00:22 ngày 01/10/2018

C không cho bạn khai báo i trong for. Bạn khai báo ở ngoài, rồi ở trong bạn ghi i=0 là đc

Nguyễn Tấn Khoa viết 00:12 ngày 01/10/2018

Bạn mở Code::Blocks lên. Vào Settings -> Compiler…
Sau đó check ở mục này

Tao Không Ngu. viết 00:19 ngày 01/10/2018

This post was flagged by the community and is temporarily hidden.

Nguyễn Văn Cao viết 00:11 ngày 01/10/2018

Mình chỉnh chuẩn c99 mà bạn

Nguyễn Văn Cao viết 00:16 ngày 01/10/2018

em đã chỉnh về c99 như cách anh Đạt chỉ trong video dạy về for mà nó vẫn thế ( rất lạ là khi em khai báo i= 1) thì chương trình chạy ổn bác ạ !!

Văn Dương viết 00:16 ngày 01/10/2018

Câu trả lời như của lão @Phong_Ky_Vo

Number%i mà i=0 thì ra cái gì hả thớt.

Nguyễn Văn Cao viết 00:20 ngày 01/10/2018

THế em mới bảo là sau lệnh for mặc dù em viết là ( int i=0; int i < sqrt(number); i++) nhưng sau đó i không hề được tăng lên 1 nó vẫn giữ nguyên là 0 nên xảy ra lỗi , em đang thắc mắc tại sao nó không tăng lên 1 mà

Văn Dương viết 00:10 ngày 01/10/2018

Bởi vì nó bắt đầu từ 0 còn gì ?

for(int i=0;…)

Tao Không Ngu. viết 00:20 ngày 01/10/2018

This post was flagged by the community and is temporarily hidden.

Bài liên quan
0