Ошибка C ++: ожидаемое первичное выражение перед выражением int - PullRequest
6 голосов
/ 14 ноября 2011

Я получаю эту ошибку для каждого целого в этом разделе кода;

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;
}

Вот где я вызываю функции в основном. Если вам интересно, я пишу небольшую программу, которая дает пользователю выбор при сортировке списка между 4 различными типами алгоритмов сортировки.

Любая помощь будет оценена.

Ответы [ 3 ]

11 голосов
/ 14 ноября 2011

Нельзя использовать типы объявлений, когда вы вызываете функции. Только когда вы объявляете , они необходимы:

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 голос
/ 14 ноября 2011

Вы используете функцию объявление синтаксис, чтобы сделать функцию вызывает . Это не обязательно, и (как вы обнаружили) даже не работает. Вы можете просто написать

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

Кстати, switch было бы более идиоматичным здесь.

0 голосов
/ 14 ноября 2011
if(choice==2)
{
 inssort(int *a, int numLines);
}

ваш код превращается в этот

if(choice==2)
{
 inssort(&a, numLines);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...