2011-11-14 14 views
5

Ricevo questo errore per ogni int in questa sezione di codice;Errore C++: espressione primaria prevista prima di '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; 
} 

Ecco dove chiamo le funzioni in main. Se ti stai chiedendo sto scrivendo un piccolo programma che dà all'utente una scelta quando si ordina una lista tra 4 diversi tipi di algoritmi di ordinamento.

Qualsiasi aiuto sarebbe apprezzato.

risposta

10

Non è possibile utilizzare i tipi di dichiarazione quando si è chiamando le funzioni. Solo quando si dichiara loro ci sono di cui avevano bisogno:

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

In realtà, non è una questione di non _needing_ loro così tanto come è _illegal_ metterli lì. Ma, a parte il mio picking di puntini semantici, hai ragione, quindi +1. – paxdiablo

+0

Sì, è corretto. Will chiarire. – Mysticial

+0

* facepalm * Grazie per la rapida risposta. –

1

Si sta utilizzando la funzione dichiarazione sintassi per far funzionare chiamate. Non è necessario e (come hai scoperto) non funziona nemmeno. Si può solo scrivere

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

Tra l'altro, un switch sarebbe più idiomatica qui.

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

il codice turno per questo

if(choice==2) 
{ 
inssort(&a, numLines); 
} 
Problemi correlati