2016-03-10 1 views
0

J'ai une erreur, qui est en surbrillance "cout < < tableau [i] < < endl;" dans cette section. La ligne est sous array [i]. L'erreur est "liste d'arguments pour le modèle de classe" std :: array "est manquant". J'ai besoin d'une fonction pour afficher le contenu d'un tableau, en utilisant un tri d'insertion. Si ce code est incorrect, quelqu'un connaît-il le code pour sortir le contenu du tableau, en utilisant la recherche linéaire.Une fonction qui affichera le contenu d'un tableau trié C++ en utilisant le tri par insertion

#include <iostream> 
#include <string> 
#include <sstream> 
using namespace std; 



int main() 
{ 
    int numbers[SIZE] = { 6,3,1,9,4,12,17,2 }; 
    for (int i = 0; i < 8; i++) 
    { 
     cout << array[i] << endl; 
    } 

    system("pause"); 
} 

const int SIZE = 8; 
void insertionSort(int numbers[], int arraySize) 
{ 
    int i, j, insert; 

    for (i = 1; i < arraySize; i++) 
    { 
     insert = numbers[i]; 
     j = i; 
     while ((j > 0) && (numbers[j - 1] > insert)) 
     { 
      numbers[j] = numbers[j - 1]; 
      j = j - 1; 
     } 
     numbers[j] = insert; 

    } 
} 
+2

essayer 'Cout << nombres [i] << endl;' et 'size' doit être défini avant' main'. – knivil

+0

@knivil merci cela a fonctionné –

+0

Notez également que 'std :: array' est une classe dans la bibliothèque standard, et en' using namespace std; 'vous l'avez jeté dans la portée globale, ce qui rend l'utilisation de l'identificateur' array' quand vous vouliez dire quelque chose d'autre potentiellement une erreur. –

Répondre

0

Vous n'avez pas appelé votre fonction insertionSort(int numbers[], int arraySize) dans main(). Par conséquent, rien n'arrivera au tableau original.

Notez que vous avez besoin d'une instruction return 0; à l'intérieur de int main(). Et que vous devez utiliser numbers[i] au lieu de array[i]. Et vous devez définir votre insertionSort() à return "quelque chose" ou de passer votre numbers[] comme référence. Aussi ne pas oublier le prototype de fonction avant main().

Cela devrait fonctionner:

const int SIZE = 8; 
void insertionSort(int [], int); 

int main() 
{ 
    int numbers[SIZE] = { 6,3,1,9,4,12,17,2 }; 
    insertionSort(numbers, SIZE); 
    for (int i = 0; i < 8; i++) 
     cout << numbers[i] << endl; 

    system("pause"); 
    return 0; 
} 

void insertionSort(int MyArray[], int size) 
{ 
    int i, j, insert; 

    for (i = 1; i < size; i++){ 
     insert = MyArray[i]; 
     j = i; 
     while ((j > 0) && (MyArray[j - 1] > insert)){ 
      MyArray[j] = MyArray[j - 1]; 
      j = j - 1;} 
     MyArray[j] = insert;} 
}