2011-11-14 48 views
5

Recibo este error por cada int en esta sección de código;Error de C++: expresión primaria esperada antes de '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; 
} 

Eso es donde llamo las funciones en main. Si se está preguntando, estoy escribiendo un pequeño programa que le da al usuario una opción al ordenar una lista entre 4 tipos diferentes de algoritmos de clasificación.

Cualquier ayuda sería apreciada.

Respuesta

10

No puede usar los tipos de declaración cuando está llamando al las funciones. Sólo cuando se declara ellos son lo que necesitaban:

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

En realidad, no es una cuestión de no _needing_ ellos tanto como sea _illegal_ para ponerlos allí. Pero, aparte de mi selección semántica, tienes razón, entonces +1. – paxdiablo

+0

Sí, eso es correcto. Aclarará – Mysticial

+0

* facepalm * Gracias por la respuesta rápida. –

1

Usted está utilizando la función declaración sintaxis para realizar la función llama. Eso no es necesario, y (como habrás descubierto) ni siquiera funciona. Puede acaba de escribir

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

Por cierto, un switch habría más idiomática aquí.

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

su código a su vez a esta

if(choice==2) 
{ 
inssort(&a, numLines); 
} 
Cuestiones relacionadas