2010-02-19 39 views
11

Các mã sau đây trả về này: error: expected unqualified-id before ‘for’lỗi: dự kiến ​​không đủ tiêu chuẩn-id trước khi ‘cho’

tôi không thể tìm thấy những gì đang gây ra lỗi. Cảm ơn đã giúp đỡ!

#include<iostream> 

using namespace std; 

const int num_months = 12; 

struct month { 
    string name; 
    int n_days; 
}; 

month *months = new month [num_months]; 

string m[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", 
       "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; 
int n[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 

for (int i=0; i<num_months; i++) { 
    // will initialize the months 
} 

int main() { 
    // will print name[i]: days[i] 
    return 0; 
} 
+1

Không liên quan đến vấn đề của bạn, nhưng vẫn rất quan trọng, là bạn đang sử dụng "mới", nhưng bạn không bao giờ gọi "xóa", làm rò rỉ bộ nhớ. –

Trả lời

24

Vòng lặp for của bạn nằm ngoài cơ quan chức năng.

3

Bạn không thể sử dụng for ở phạm vi đó.

+1

Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ tác giả, hãy để lại nhận xét bên dưới bài đăng của họ. –

+0

Điều này hiển thị trong phần "bài đánh giá chất lượng thấp". Mặc dù câu trả lời là chính xác, nhưng nó đủ ngắn để có thể mời xóa phiếu bầu của những người đánh giá không quen thuộc với khu vực này. – Mysticial

+1

@SteveGuidi: Nó trả lời câu hỏi. Anh ta nói anh ta không thể hiểu tại sao anh ấy lại gặp lỗi và đó là vì * bạn không thể sử dụng 'for' ở phạm vi đó *. – dreamlax

5

Ok chỉ để làm cho câu trả lời này rõ ràng (vì tôi đã phạm sai lầm tân binh).

vòng lặp for nằm ngoài int main() cùng với mọi thứ khác vì chính() ngồi tự trống ở cuối mã.

Xin lỗi nhiều hơn số lượng cần thiết để nói cho một số người nhưng vì vấn đề này hướng đến người mới nên cần giải thích phức tạp hơn.

+0

Mọi thứ khác * có thể * ngồi bên ngoài chính() nếu muốn, và rất nhiều phần còn lại (như cấu trúc và lớp học) * phải * ngồi bên ngoài chính(). Ngoài ra, điều này ngụ ý rằng 'main()' là hàm duy nhất có thể chứa các biến. Vấn đề là vòng lặp for() nằm ngoài * bất kỳ * chức năng nào, không phải chính(). –

Các vấn đề liên quan