[Question] - Decalage Tableau
Bonsoir tout le monde,
J'ai un problème, je ne sais pas comment résoudre l'énnoncé suivant.
1. Rentrez dix nombres dans un tableau.
2. Rentrez un nombre au hazard.
3. Rentrez le sens du déplacement :
a. vers la droite, veuillez rentrer : +
b. vers la gauche, veuillez rentrer : -
c. inchangé, veuillez rentrer : 0
On obtient donc un tableau de dix nombres, et on décide de décaler les nombres soit vers la gauche, soit vers la droite ou soit inchangé en fonction du nombre rentré au hazard.
Voici une partie de mon code..il trie, mais ne déplace pas.....
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| #include <stdio.h>
#include <stdlib.h>
#define D 10 /* taille tableau */
main()
{
/*** Déclarations ***/
int tab[D]; /* tableau donné */
int i,j; /* indices courants */
int idecal; /* deplacement tableau */
int tmp; /* temporaire */
char signe;
/*** Saisie des données ***/
i=0;
while (i<D)
{
printf("Nombre [%d] : ", i);
scanf("%d", &tab[i]);
i++;
}
/*** Affichage du tableau ***/
printf("\nTableau :\n\n\t");
for (i=0; i<D; i++)
printf("%d\t", tab[i]);
printf("\n");
i=0;
/*** Décalage d'autant dans le tableau ***/
printf("\n\nRentrez un nombre : ");
scanf("%d", &idecal);
printf("\n\n");
/*** Décalage de gauche à droite ou inchangé dans le tableau ***/
printf("Deplacer le vecteur par la gauche (-), la droite (+) ou inchange (0) \?\n");
fflush(stdin);
printf("\n\nRentrez le signe : ");
scanf("%c", &signe);
/*** Inverser le tableau ***/
for (i=0, j=D-1 ; i<j ; i++,j--)
/*** Echange de tab[i] et tab[j] ***/
{
tmp = tab[i];
tab[i] = tab[j];
tab[j] = tmp;
}
/*** Edition des résultats ***/
printf("\n\nDecalage :\n\n\t");
for (i=0; i<D; i++)
printf("%d\t", tab[i]);
printf("\n\n");
i=0;
} |
Pourriez-vous m'aider, svp. (code source, svp).
Pour créer le tableau pas de problèmes, mais c'est pour le décalage...
Merci d'avance,
Cordialement,
Cédric :wink: :roll:
Re: [Question] - Decalage Tableau
Citation:
Envoyé par apdcanari
Pour créer le tableau pas de problèmes, mais c'est pour le décalage...
Soit un algo de copie, soit memmove().
Ne pas utiliser fflush (stdin) qui n'est pas standard, mais les bonnes fonctions de saisies :
http://emmanuel-delahaye.developpez....tes.htm#saisie
http://emmanuel-delahaye.developpez....s.htm#fichiers
Re: [Question] - Decalage Tableau
Citation:
Envoyé par Emmanuel Delahaye
Citation:
Envoyé par apdcanari
Pour créer le tableau pas de problèmes, mais c'est pour le décalage...
Soit un algo de copie, soit memmove().
Cad...je suis un peu comment dire "perdu"...
Pourrais-tu me montrer sous forme d'exemple ?
Merci,
Cédric :wink:
Re: [Question] - Decalage Tableau
Citation:
Envoyé par apdcanari
Pourrais-tu me montrer sous forme d'exemple ?
On a le tableau
et on veut décaler de 1 à droite
Au fait, on veut ça
ou ça ?