mercredi 28 novembre 2012

Exercice 10 en C++ (les tableaux)


EXERCICE 10

Ecrire un programme qui saisit 2 tableaux de 10 entiers a et b qui doivent être triés dans l'ordre croissant. Le programme devra tout d'abord vérifier que les deux tableaux sont triés. Le tableau c est un tableau de 20 entiers. Le programme doit mettre dans c la fusion des tableaux a et b. Le tableau c devra contenir les éléments de a et ceux de b et devra être trié. Le programme affiche ensuite le tableau c.

#include<iostream>
 using namespace std;
 
 const int N=10;
 
 int main()
 {
 int a[N],b[N],c[2*N],i,trie,indicea,indiceb;
 
 cout<<"SAISIE DU TABLEAU a"<<endl;
 for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>a[i];}
 
 cout<<"SAISIE DU TABLEAU b"<<endl;
 for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>b[i];}
 
 trie=true;
 i=0;
 while(trie && i<N-1)if(a[i]>a[i+1])trie=false; else i++;
 
 if(!trie)cout<<"Le tableau a n'est pas trié"<<endl;
  else
  {
  trie=true;
  i=0;
  while(trie && i<N-1)if(b[i]>b[i+1])trie=false; else i++;
 
  if(!trie)cout<<"Le tableau b n'est pas trié"<<endl;
  else
  {
  indicea=0;indiceb=0;
  for(i=0;i<2*N;i++)
  {
  if(indicea==N){c[i]=b[indiceb];indiceb++;}
  else if(indiceb==N){c[i]=a[indicea];indicea++;}
  else if(a[indicea]<b[indiceb]){c[i]=a[indicea];indicea++;}
 
else {c[i]=b[indiceb];indiceb++;}
  }
  }
  }
 
 cout<<"VOICI LE TABLEAU c"<<endl;
 for(i=0;i<2*N;i++)cout<<c[i]<<" ";
 cout<<endl;
 
 return 0;
 }

Aucun commentaire:

Enregistrer un commentaire