Tableaux

Résolu/Fermé
Esks.Mb - 7 févr. 2008 à 04:32
 Esks.Mb - 12 févr. 2008 à 21:50
Bonjour,

pour commencer, je n'ai pas un bon niveau en programmation,donc...Bref je ne sais pas quoi faire pour créer un programme en C++ qui, à partir d'un tableau contenant des valeurs en ordre croissant, obtienir un nouveau tableau avec les mêmes valeurs en ordre décroissant. Ensuite,effectuer un glissement de toutes les valeurs du nouveau tableau d'une position vers là gauche (de manière est-ce que la première valeur devient la dernière).Puis afficher le tableau en ordre croissant, celui en ordre décroissant et le tableau après le glissement d'une position. Un diagramme d'action bien détaillé me donnerai un super coup d'main!

Merci

2 réponses

Utilise à chaque fois une variable temporaire pour stocker une valeur. Par exemple, pour mettre en ordre decroissant, tu dois inverser toutes les valeurs (case 1 devient case N, case 2 devient N-1, ...), cela se traduit par:

for( int i=0; i<N/2; i++ ) {
// echanger i avec N-i
int temp = tableau[i];
tableau[i] = tableau[N-i-1];
tableau[N-i-1] = temp;
}

pour le glissement, c'est similaire:
int derniere = tableau[N-1];
// glissement à droite des N-1 premieres valeurs
for( int i=N-2; i>=0; i-- ) { // aller à reculons pour eviter de propager la premiere valeur
tableau[i+1] = tableau[i];
}
// la derniere valeur devient la premiere
tableau[0] = derniere;
0
En gros....mais pour l'affichage? Je sais qui fauderai une boucle pour ca...mais jvois pas comme l'utiliser...quoi mettre dedans??

_______________________________________________________________________________________________

#include<iostream>
#include<conio.h>

using namespace std;

void main(void)
{
int i;
int N=0;
int temp=0;
int derniere=0;
int tableau[12]={1,3,4,6,8,9,10,13,14,17,18,20};

for( i=0; i<N/2; i++ )
{
temp = tableau[i];
tableau[i] = tableau[N-i-1];
tableau[N-i-1] = temp;
}


derniere = tableau[N-1];

for( i=N-2; i>=0; i-- )
tableau[i+1] = tableau[i];

tableau[0] = derniere;

//Affichage des 3 tableaux//

cout<<"\nTableau en ordre croissant:"<<endl;
cout<<"\n\nTableau en ordre decroissant:"<<endl;
cout<<"\n\nTableau apres le glissement:"<<endl;

_getch();
}
____________________________________________________________________________________________
0