Bonjour,
Je vous explique le programme que je fais : Au départ mon tableau contient des valeurs nulles. Lorsque j'entre une valeur sur le pavé numérique (entre 0 et 9), à l'aide de la fonction getchar la valeur que j'ai rentré apparait sur le terminal. Lorsque j'entre une autre valeur, la valeur précédente est décalée d'un pas de 1 vers la gauche, laissant la case précédente vide pour que la valeur nouvellement entrée apparaisse aussi. Au final, jobtiens à l'écran mon tableau avec toutes les valeurs que j'ai rentré.
Exemple :
Au départ j'ai mon tableau suivant : {0, 0, 0, 0, 0}
J'entre le nombre 2 j'obtiens : {0, 0, 0, 0, 2}
j'entre le nombre 9 j'obtiens : {0, 0, 0, 9, 2}
J'entre le nombre 4 j'obtiens : {0, 0, 4, 9, 2}
Ainsi de suite, voila le programme que j'ai fais :
Code:#include <stdlib.h> #include <stdio.h> #include <string.h> #define TAILLE 10 int tab[TAILLE] = {0}; //La fonction suivante remplit un tableau au fur et à mesure qu'on entre un nombre entre 0 et 9 //On entre un chiffre compris entre 0 et 9 //ce chiffre est stocké dans un tableau de taille et à l'indice 0 //Lorsqu'on entre le chiffre suivant, tous les chiffres précédents sont décalés //Ce qui veut dire que le chiffre qu'on a entré entre en indice 0 void remplir_tableau (int i) { int j = i; int p = getchar(); if (j<TAILLE) { tab[j+1] = tab[j]; tab[j] = tab[j-1]; j++;} tab[i] = p; printf ("%2d", tab[i]); if (i<TAILLE) remplir_tableau (i++); } int main () { remplir_tableau(1); return 0; }
Sue le terminal, quand j'entre un nombre il apparait à l'écran, mais les 0 initiaux n'apparaissent pas, ainsi que le tableau de 10 que j'ai déclaré.
En effet, j'obtiens ceci :
J'entre le nombre 5 : 5
J'entre le nombre 5 : 53105
J'entre le nombre 2 : 53102
Or que je devrais avoir ceci :
J'entre le nombre 5 : {0,0,0,0,0,0,0,0,0,5}
J'entre le nombre 5 : {0,0,0,0,0,0,0,0,5,5}
J'entre le nombre 2 : {0,0,0,0,0,0,0,2,5,5}
Vous avez des idées ?
Merci
-----