30/09/2018, 19:13

Lỗi vòng lặp for ở code block

E:Sourcode_CodeBlockSo_NTmain.c|13|error: ‘for’ loop initial declarations are only allowed in C99 mode|
Cho mình hỏi lỗi này fai sửa như thế nào v?

Vu Van Chung viết 21:21 ngày 30/09/2018

Lần sau những câu hỏi thế này bạn nên đưa code lên và cả màn hình lỗi thì người ta mới dễ dàng sửa cho bạn được chứ, hỏi thế này sao mà sửa được!

Gió viết 21:14 ngày 30/09/2018

Không được khai báo biến trong vòng for

Huynh Ngoc Chinh viết 21:19 ngày 30/09/2018

Mình vừa úp hình lên bạn sửa hộ mình với

Vu Van Chung viết 21:30 ngày 30/09/2018

Bạn copy code lên đây đc ko? Để mình chạy thử

Huynh Ngoc Chinh viết 21:23 ngày 30/09/2018

int main()
{
int n,i;
int dem=0;
printf(“Nhap vao so n: “);
scanf(”%d”,&n);
if(n<2);
printf(“Khong phai la so nguyen to\n”);
for(i=2 ; i <= n ; i++)
{
if(n%i==0)
dem++;
}
if(dem>2)
printf("%d khong phai la so nt",i);
else
printf("%d la so nguyen to", i);

return 0;

}

Vu Van Chung viết 21:24 ngày 30/09/2018

Mình chạy không thấy lỗi cú pháp, chỉ lỗi logic thôi à

Pham Van Hai viết 21:24 ngày 30/09/2018

Mặc định compiler của code block sử dụng chuẩn C89, tức là tất cả các biến phải được khai báo trước tiên nhất rồi đến các lệnh khác: printf, scanf, lệnh gán, gọi hàm, …
Trong trường hợp của bạn lệnh khai báo int i trong vòng for là không được phép trong chuẩn C89 (nhưng được phép trong chuẩn C99), bạn chỉ cần sửa lại bằng cách khai báo int i sau khai báo int dem = 0.

Huynh Ngoc Chinh viết 21:29 ngày 30/09/2018

Mình ms sửa lại à, nãy mình khai báo biến i trong vòng lặp for luôn. h mình khai báo ở main thì lại đc.

Huynh Ngoc Chinh viết 21:16 ngày 30/09/2018

cảm ơn bạn nha! mình mới học còn gà quá

Vu Van Chung viết 21:20 ngày 30/09/2018

Bài này bạn làm chưa tối ưu đâu nhé, bạn chỉ cần xét i từ 2 đến sqrt(n) thôi. Và bạn xem lại chỗ in nữa, mình nhập số 5 thì in ra 6 không là số nguyên tố

Pham Van Hai viết 21:14 ngày 30/09/2018

Nếu bạn đọc được sách tiếng Anh thì bạn tìm học theo quyển sách này, nó rất chi tiết và có nói các tính năng khác nhau giữa các chuẩn của C.
The C Programming A Modern Approach 2nd.

Liêu Đức Mạnh viết 21:18 ngày 30/09/2018

Nếu mình nhớ không nhầm muốn sửa thì chọn Settings -> Compiler -> Orther option (Bên phải của Compiler Flags) -> ghi “-std=C99” thì được hay sao ấy. lúc trước nhớ a đạt có chỉ cái này rồi.

Bài liên quan
0