begin process at 2012 02 11 00:57:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Concatener 2 tableuax triés


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Concatener 2 tableuax triés

mercredi 7 juin 2006 à 15:01:37 | Concatener 2 tableuax triés

Strick9

Salut à tous,

je bloque sur l'énoncé suivant.De l'aide serait plus que bienvenue.

Ecrire une fonction qui permet d'insérer un tableau d'entier T2 dans un autre tableau d'entier T1. T1 et T2 contiennent respectivement N1 et N2 éléments.
les deux tableaux sont deja triés par ordre croissant.
Exemple:

T1:       1   4   5   8   9
T2:       2   3   6
donc T1 devient:
T1:       1   2   3   4   5   6   8   9

j ai essayé mais j ai une faute que je n'ai pas pu corrigé (je ne l ai trouvé)
voila mon code:


#include <stdio.h>

void affiche(int t[], int n)
{
 int i;
 printf("\n");

 for(i=0;i<n;i++)
  printf(" - %d ", t[i]);
}


int concat(int t1[], int n, int t2[])

{
int i=0,j=0,k=0;
int t3[20];

  while(i<n&&j<n) 
 {
   
  if((t1[i])<(t2[j]))
  
  {t3[k]=t1[i];
  i++;k++;}
  
  
  else
   
  if((t1[i])==(t2[j]))
  {t3[k]=t1[i];
   i++;k++;
   t3[k]=t2[j];
  j++;}
  
    else
    {t3[k]=t2[j];
    k++;
    j++;}

 }
  
  if(i==n&&j<n)
   for(k=;i
   
  return t3[n+n];
}


void main()
{

int i;
int t1[10], t2[10], t3[20];
int k;


for(i=0;i<5;i++)
{printf("\ndonner element tab 1");
scanf("%d", &t1[i]);}

for(i=0;i<5;i++)
{printf("\ndonner element tab 2:");
scanf("%d", &t2[i]);}

affiche(t1,5);
affiche(t2,5);

t3[20]=concat(t1,5,t2);
affiche(t3,10);
scanf("%d", &k);

}

merci d'avoir lu et bonne journée à tous.

mercredi 7 juin 2006 à 17:02:11 | Re : Concatener 2 tableuax triés

AlexMAN

Membre Club

D'abord, dans ta boucle while(), ta condition est : tant que i < n et j < n, mais des que tu atteindras la fin d'un tableau, i (par exemple) sera egal a n, donc tu sortiras, alors qu'il reste des elements dans dans l'autre tableau (je pense que t'as voulu le gerer apres mais le code est pas passé apparemment). Ensuite, pourquoi gerer differemment le cas ou les deux sont egaux ? Normalement, tu n'en as pas besoin, et a mon avis c'est que la que sa plante parce dans ton cas ou les 2 sont egaux, tu n'incrementes pas k la 2eme fois. Enfin, si ton tableau A et B ont une taille de 20 elements, ton tableau C qui contiendra les 2, doit avoir une taille deux fois plus grande (donc 40 dans ton cas).
Ah et c'est quoi ce return tab3[n + n] ?! C'est du C apparemment, ca n'existe donc pas ! Tu ne peux pas renvoyer un tableau declaré en local dans une fonction (car alloué sur la pile..).
Je crois que c'est a peu pres tout ;)

+2(p - n)

mercredi 7 juin 2006 à 21:37:20 | Re : Concatener 2 tableuax triés

Hylvenir

"Ah et c'est quoi ce return tab3[n + n] ?! C'est du C apparemment, ca n'existe donc pas !Tu ne peux pas renvoyer un tableau declaré en local dans une fonction (car alloué sur la pile..)"

je ne suis pas sûr d'avoir suivi là....

mercredi 7 juin 2006 à 21:43:25 | Re : Concatener 2 tableuax triés

Hylvenir

Pour être plus précis,
l'objectif et la méthode de l'OP ne sont pas bonne
mais ta phrase est bizarre.
mercredi 7 juin 2006 à 22:12:42 | Re : Concatener 2 tableuax triés

AlexMAN

Membre Club
Oui effectivement, j'avais pas compris ce qu'il voulait faire, je pensais qu'il voulait renvoyer le tableau, alors que ce n'est qu'un seul element..Autant pour moi ! Et puis c'est encore pire alors, si n = 20, n+n = 40 (whaa, trop fort), et ton tableau a une taille de 20 elements, donc tu vois ce qui va se passer...
Desolé pour la fin de mon 1er message, j'ai merdé.

+2(p - n)
mercredi 7 juin 2006 à 22:48:21 | Re : Concatener 2 tableuax triés

Hylvenir

Pour concatener,
comme ton code ne compile même pas... pas facile de t'aider.

Pour faire le ... (y'a pas d'affichage pour faire court)

void concat( int t1[], int t2[], int* t3 )
{
    while( *t1 && *t2 ) {
        *t3++ = *( *t1 > *t2 ? t2 : t1 )++;
    }

    while( *t1 ) *t3++ = *t1++;
    while( *t2 ) *t3++ = *t2++;
}

int main() {
    int t1[] = { 1,4,5,8,9, 0 };
    int t2[] = { 2,3,6, 0 };
    int t3[40] = { 0 };

    concat( t1, t2, t3 );
}

mercredi 7 juin 2006 à 22:54:48 | Re : Concatener 2 tableuax triés

AlexMAN

Membre Club
Et que se passe t'il si au milieu du tableau t1 ou t2 il y a un zero ?

+2(p - n)
mercredi 7 juin 2006 à 23:13:19 | Re : Concatener 2 tableuax triés

Hylvenir

Ca fait parti des conditions à connaitre  (faut lire le man ) pas de zéro dans le tableau.

C'est trivial de passer la taille du tableau et de l'utiliser mais je ne veux pas faire tout le travail.

jeudi 17 mars 2011 à 19:32:45 | Re : Concatener 2 tableuax triés

noussa44

Salut à tous,
Je bloque sur le code suivant:
#include <iostream>
#include <math.h>
int main()
{
int t3[50];
int t1[5];
int t2[5];
t1[0]=2;
t1[1]=3;
t1[2]=5;
t1[3]=7;
t1[4]=4;
t2[0]=5;
t2[1]=8;
t2[2]=6;
t2[3]=7;
t2[4]=8;
for (int i=0;i<5;i++){
std::cout << t1[i] << std::endl;}
for (int j=0;j<5;j++){
std::cout << t2[j] << std::endl;}
int k=0;
int l
do
for (int i=0;i<5;i++)
for (int j=0;j<5;j++)
t3[l]=sprt((sqr(t1[i]-t1[k]))+(sqr(t2[j]-t2[k]));
while (k<5);
return 0;
}
Merci d'avance


Cette discussion est classée dans : affiche, int, t1, t2, t3


Répondre à ce message

Sujets en rapport avec ce message

je m'arrache les cheveu avec mes tableau [ par slyiut ] bonjour je dois faire un exo qui est la fusion de 2 tableau triés dans un troisieme tableau.Je sais qu'il y a sur le net plein de solution mais ce que IOSTREAM [ par hell ] Bonjour à vous tous je vous remercie de m'aiderIl arrive souvent avec iostream que je ne suis pa capable de voir mon programme il y a toujour cette e strncat [ par Darkvlador ] lu !j'ai un problème concernant strncat voilà mon codechar *t1 = "hello";char *t2 = "12mo";char *t3;strncpy(t3, t1, 2);aprèsstrncat(t3, t2, 2);et la q creation automatique d'une matrice [ par nissan1 ] Bonjour a tous, Je travail sur mon sujet de stage et je suis bloquer depuis quelques jours car j'ai fait un programme qui contient une fonction qui p Programme en c++ [ par noussa44 ] Bonjour à tous et merci d'avance pour vos réponses, J'ai fait un petit code en c++ pou calculer la distance entre des points avec la formule :d² = (x' c++ [ par noussa44 ] Bonjour, j'ai un code avec c++ mais il a des erreurs svp si quel qu'un peut m'aider et corriger ce code qui permet de calculer la distance entre des p c++ [ par noussa44 ] Salut tout le monde, j'ai besoin svp de vore aide sur un exercice que j'ai fait mais j'ai des erreurs, pour cela je me suis fait recours sur votre a c++ [ par noussa44 ] salut tout le monde, Je suis débutante en c++ et j'ai fait un petit programme qui permet de remplir un tableau et afficher les éléments mais j'ai prob Différence entre déclarations d'objet [ par skeleton18 ] Salut à toutes et à tous, Je ne suis pas vraiment un débutant en C++, mais j'ai une question de débutant... J'ai défini une classe Test comme ceci aide c++ [ par jekburn ] #include #include typedef struct{   int heure;   int minute;   int seconde;}TEMPS; TEMPS diff(TEMPS t1,TEMPS t2){   TEMPS t3; &n


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,044 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales