2011-11-14 60 views
5

Tôi nhận được lỗi này cho mọi int trong phần mã này;Lỗi C++: biểu thức chính dự kiến ​​trước ‘int’

if(choice==2) { 
    inssort(int *a, int numLines); 
} 
if(choice==3) { 
    bubblesort(int *a, int numLines); 
} 
if(choice==4) { 
    mergesort(int *a, int numLines); 
} 
if(choice==5) { 
    radixsort(int *a, int numLines); 
} 
if(choice==6) { 
    return 0; 
} 

Đó là nơi tôi gọi các chức năng chính. Nếu bạn đang tự hỏi tôi đang viết một chương trình nhỏ cung cấp cho người dùng một sự lựa chọn khi sắp xếp một danh sách giữa 4 loại khác nhau của thuật toán sắp xếp.

Mọi trợ giúp sẽ được đánh giá cao.

Trả lời

10

Bạn không thể sử dụng các loại khai báo khi bạn đang gọi các chức năng. Chỉ khi bạn tuyên bố số đó là họ cần:

if(choice==2) 
{ 
    inssort(a, numLines); 
} 
if(choice==3) 
{ 
    bubblesort(a, numLines); 
} 
if(choice==4) 
{ 
    mergesort(a, numLines); 
} 
if(choice==5) 
{ 
    radixsort(a, numLines); 
} 
if(choice==6) 
{ 
    return 0; 
} 
+1

Trên thực tế, nó không phải là một vấn đề không _needing_ họ rất nhiều vì nó là _illegal_ để đặt chúng ở đó. Nhưng, ngoài việc chọn nitrit ngữ nghĩa của tôi, bạn nói đúng, vì vậy +1. – paxdiablo

+0

Vâng, đúng vậy. Sẽ làm rõ. – Mysticial

+0

* facepalm * Cảm ơn bạn đã trả lời nhanh. –

1

Bạn đang sử dụng chức năng khai cú pháp để thực hiện chức năng gọi. Điều đó không cần thiết, và (như bạn đã khám phá ra) thậm chí không hoạt động. Bạn chỉ có thể viết

if (choice == 2) 
    inssort(a, numLines); 
// etc 

Nhân tiện, một switch sẽ thành ngữ hơn ở đây.

0
if(choice==2) 
{ 
inssort(int *a, int numLines); 
} 

đang đến lượt bạn này

if(choice==2) 
{ 
inssort(&a, numLines); 
} 
Các vấn đề liên quan