Accueil > Forum > > > > Concatener 2 tableuax triés
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
|
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
|
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
|
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.
|
|
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
Tableaux et C, aidez-moi! [ par phenix22000 ]
Bonsoir à tous,quelqu'un peut-il m'aider pour m'expliquer comment savoir si un tableau contient déjà des éléments si on l'incrémente petit à petit...J
Instanciation JAVA (renommé et déplacé bar --> java) [ par baster200x ]
bonjour tout le monde, j'ai un petit problème .... ben j'ai réalisé un programme de tel façon il prend un texte à partir d'un TextArea [ String text =
Conservation des données créees dans une classe [ par leyeye21 ]
Bonjour,J'ai un soucis dans mon programme,Lorsque je vais dans la fonction "creation_contrat()" j'arrive à créer un nouveau contrat et le lire mais lo
je n'arrive pas a affiche mon program [ par saidsarr ]
quand je l'exécute il n'affiche pas le message de saisi de matrice et quand je tape une touche je sorte du programme si qu'elle peu m'aider a résoudr
aide c++ [ par jekburn ]
#include #include typedef struct{ int heure; int minute; int seconde;}TEMPS; TEMPS diff(TEMPS t1,TEMPS t2){ TEMPS t3; &n
map [ par vecchio56 ]
Bonjour, J'ai une map m. J'ajoute une clé de la manière suivante: m[t1] = T2(...); et tout de suite après j'ai besoin de récupérer l'objet que je vi
Pbm de spawning sur un prog de classe? [ par romca ]
J'ai un exo et le programme est le suivant en bas. Il n'est pas complété c'est normal, c'est le but de l'exercice,(merci de ne pas me le compléter).Ma
Livres en rapport
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|