Programme
Fermé
damien7258
-
26 mars 2008 à 12:38
argentine Messages postés 10 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 3 avril 2008 - 3 avril 2008 à 20:09
argentine Messages postés 10 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 3 avril 2008 - 3 avril 2008 à 20:09
A voir également:
- Programme
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
20 réponses
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
26 mars 2008 à 13:50
26 mars 2008 à 13:50
oui, l'énoncé demande de rentrer les valeurs dans un tableau.
le gros problème ici sera donc le nombre d'éléments de ton tableau résultat :
si tu as un tableau de 5 éléments et un tableau de 3 éléments, quelle sera la taille du tableau de sortie?
peut-il y avoir des doublons dans le tableau de sortie?
si le tableau A est [1;2;4;5] et le tableau B est [4;5;8;9]
le tableau sortie est-il [1;2;4;5;8;9] ou [1;2;4;4;5;5;8;9]
avant de commencer à écrire ton programme, il faut que tout ça soit bien clair dans ta tête, sinon c'est tu vas te planter à 95 chances sur 100.
ensuite, i et tableau1[i]ne sont pas corrélés.
ta boucle for(i=0;i<tableau1[i] || i<tableau2[i];i++) me paraît très douteuse.
si tu as 2 tableaux commençant chacun au dessus de 5, qu'est-ce qu'il se passe?...
le gros problème ici sera donc le nombre d'éléments de ton tableau résultat :
si tu as un tableau de 5 éléments et un tableau de 3 éléments, quelle sera la taille du tableau de sortie?
peut-il y avoir des doublons dans le tableau de sortie?
si le tableau A est [1;2;4;5] et le tableau B est [4;5;8;9]
le tableau sortie est-il [1;2;4;5;8;9] ou [1;2;4;4;5;5;8;9]
avant de commencer à écrire ton programme, il faut que tout ça soit bien clair dans ta tête, sinon c'est tu vas te planter à 95 chances sur 100.
ensuite, i et tableau1[i]ne sont pas corrélés.
ta boucle for(i=0;i<tableau1[i] || i<tableau2[i];i++) me paraît très douteuse.
si tu as 2 tableaux commençant chacun au dessus de 5, qu'est-ce qu'il se passe?...
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
26 mars 2008 à 14:16
26 mars 2008 à 14:16
si tu étais poli, tu respecterai les posts des autres.
et si tu veux une réponse, sois poli.
et si tu veux une réponse, sois poli.
après réflexion c'est vrai que ma boucle for ne peut pas fonctionner car aussi non le tableau de sortie risque d'avoir beaucoup de 0.
Par contre il y avait un exemple et les doublons ne sont pas accepter donc si je reprend ton exemple le tableau sortie est [1;2;4;5;8;9].
je crois que c'est un petit peu plus clair à ce niveau la en revanche je ne vois pas trop comment procédé pour faire rentré dans mon tableau de sortie seulement quelques valeurs rentré en paramètre je vais y réfléchir encore si vous avez quelques tuyaux à me donner bien merci d'avance.
Par contre il y avait un exemple et les doublons ne sont pas accepter donc si je reprend ton exemple le tableau sortie est [1;2;4;5;8;9].
je crois que c'est un petit peu plus clair à ce niveau la en revanche je ne vois pas trop comment procédé pour faire rentré dans mon tableau de sortie seulement quelques valeurs rentré en paramètre je vais y réfléchir encore si vous avez quelques tuyaux à me donner bien merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici mon début de programme:
int main(void)
{
long taille1,taille2;
long tableau1[taille1];
long tableau2[taille2];
printf("entrez la taille du tableau1 puis celle du tableau 2:\n");
scanf("%ld%ld",&taille1,&taille2);
Mais c'est maintenant que je ne vois pas comment associer des valeurs rentrées en paramètre a mon tableau.
int main(void)
{
long taille1,taille2;
long tableau1[taille1];
long tableau2[taille2];
printf("entrez la taille du tableau1 puis celle du tableau 2:\n");
scanf("%ld%ld",&taille1,&taille2);
Mais c'est maintenant que je ne vois pas comment associer des valeurs rentrées en paramètre a mon tableau.
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
27 mars 2008 à 09:56
27 mars 2008 à 09:56
la taille de ton tableau de sortie sera au plus égal à la somme des tailles de tes 2 tableaux d'entrée...
tu peux prévoir un tableau trop grand et tu n'initialise que les éléments dont tu as besoin, en retournant le nombre d'éléments initialisés (c'est d'ailleurs ce qu'on te demande...)
pour entrer les valeurs de tes tableaux, deux boucles for suffisent, une pour chaque tableau
int temp;
for(int i=0;i<taille_tab1;i++)
{
printf("entrez l'element %d tu tableau 1\n");
scanf("%d",&temp);
tab[i]=temp;
}
idem pour le tableau 2
tu peux prévoir un tableau trop grand et tu n'initialise que les éléments dont tu as besoin, en retournant le nombre d'éléments initialisés (c'est d'ailleurs ce qu'on te demande...)
pour entrer les valeurs de tes tableaux, deux boucles for suffisent, une pour chaque tableau
int temp;
for(int i=0;i<taille_tab1;i++)
{
printf("entrez l'element %d tu tableau 1\n");
scanf("%d",&temp);
tab[i]=temp;
}
idem pour le tableau 2
La j'ai fait seulement pour le tableau 1 mais quant je rentre les valeur mon programme plante
voici mon programme et merci déja pour ces conseils j'ai bien avancé.
#include<stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int taille_tab1=0,taille_tab2;
long valeur=0,i=0;
long* tableau1=NULL;
long* tableau2=NULL;
printf("entrez la taille du tableau 1 puis celle du tableau2\n");
scanf("%ld",&taille_tab1);
if (taille_tab1 > 0)
{
tableau1 = malloc(taille_tab1 * sizeof(long));
if (tableau1 == NULL)
{
exit(0);
}
for(i=0;i<taille_tab1;i++);
{
printf("entrez l'element %d tu tableau 1\n");
scanf("%d",&valeur);
tableau1[i]=valeur;
}
printf("\n\nVotre tableau 1 a les valeurs suivantes :\n");
for (i = 0 ; i < taille_tab1 ; i++)
{
printf("%ld\n", tableau1[i]);
}
free(tableau1);
}
system("PAUSE");
return 0;
}
voici mon programme et merci déja pour ces conseils j'ai bien avancé.
#include<stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int taille_tab1=0,taille_tab2;
long valeur=0,i=0;
long* tableau1=NULL;
long* tableau2=NULL;
printf("entrez la taille du tableau 1 puis celle du tableau2\n");
scanf("%ld",&taille_tab1);
if (taille_tab1 > 0)
{
tableau1 = malloc(taille_tab1 * sizeof(long));
if (tableau1 == NULL)
{
exit(0);
}
for(i=0;i<taille_tab1;i++);
{
printf("entrez l'element %d tu tableau 1\n");
scanf("%d",&valeur);
tableau1[i]=valeur;
}
printf("\n\nVotre tableau 1 a les valeurs suivantes :\n");
for (i = 0 ; i < taille_tab1 ; i++)
{
printf("%ld\n", tableau1[i]);
}
free(tableau1);
}
system("PAUSE");
return 0;
}
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
27 mars 2008 à 13:00
27 mars 2008 à 13:00
oui, c'est normal : tu ne déclare pas des tableaux mais des pointeurs
long* tableau1=NULL;
long* tableau2=NULL;
par conséquent, la mémoire allouée est prévue pour recevoir une adresse et rien de plus, alors que quand tu déclares un tableau, il alloue une zone mémoire pour la tête de ton tableau et toutes les zones mémoires pour les éléments du tableau
donc forcément, dans ton cas, quand tu veux initialiser les valeurs tableau1[i], tu vas initialiser des zones mémoires qui ne sont pas allouées, et ça plante.
il te faut donc déclarer des tableaux.
en supposant que tu aies des tableaux de 20 éléments, tu auras
long tableau1[20];
long tableau2[20];
long tableau3[40];
etc...
comme ça ça devrait beaucoup mieux marcher.
la taille de tes tableaux doit être fixée une fois pour toute car la mémoire va être allouée au démarrage de ton programme, mais tu n'es pas obligé d'utiliser toute la taille allouée.
par exemple, si tu as des tableaux d'au plus 20 éléments, tu déclares des tableaux de 20 éléments. après, rien ne t'interdit de n'utiliser que les 5 premiers. c'est à ça que te servent tes variables taille
long* tableau1=NULL;
long* tableau2=NULL;
par conséquent, la mémoire allouée est prévue pour recevoir une adresse et rien de plus, alors que quand tu déclares un tableau, il alloue une zone mémoire pour la tête de ton tableau et toutes les zones mémoires pour les éléments du tableau
donc forcément, dans ton cas, quand tu veux initialiser les valeurs tableau1[i], tu vas initialiser des zones mémoires qui ne sont pas allouées, et ça plante.
il te faut donc déclarer des tableaux.
en supposant que tu aies des tableaux de 20 éléments, tu auras
long tableau1[20];
long tableau2[20];
long tableau3[40];
etc...
comme ça ça devrait beaucoup mieux marcher.
la taille de tes tableaux doit être fixée une fois pour toute car la mémoire va être allouée au démarrage de ton programme, mais tu n'es pas obligé d'utiliser toute la taille allouée.
par exemple, si tu as des tableaux d'au plus 20 éléments, tu déclares des tableaux de 20 éléments. après, rien ne t'interdit de n'utiliser que les 5 premiers. c'est à ça que te servent tes variables taille
GRIETA
Messages postés
6
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
28 mars 2008
1
27 mars 2008 à 23:59
27 mars 2008 à 23:59
JE VOULAIS SAVOIR 0 QUEL EST LE BUT de ce programmer
ecrire une fonction ???
HARMONIQUE estc e possible ??
ecrire une fonction ???
HARMONIQUE estc e possible ??
tu peu faire ce pro par pour ou repete jusgu'a comm ca je croi
GRIETA
Messages postés
6
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
28 mars 2008
1
28 mars 2008 à 00:59
28 mars 2008 à 00:59
tu px m'aider ???
GRIETA
Messages postés
6
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
28 mars 2008
1
28 mars 2008 à 00:21
28 mars 2008 à 00:21
COMMENT
j'ai pas compris
en fait jec cherche à programmer le laplacien
j'ai pas compris
en fait jec cherche à programmer le laplacien
J'ai réussi a faire le principale du programme je pense mais sa ne trie pas correctement pouvait vous m'aidez s'il vous plait merci d'avance voici mon programme.
#include<stdio.h>
#include <stdlib.h>
int main(void)
{
long tableau1[4]={1,12,45,0};
long tableau2[5]={4,5,16,24,0};
long tableau_resultat[100];
int i=0,j=0,nb=0;
while (i <= 5)
{
if (tableau1[i]<tableau2[i])
{
tableau_resultat[j]=tableau1[i];
tableau_resultat[j+1]=tableau2[i];
}
else
{
tableau_resultat[j]=tableau2[i];
tableau_resultat[j+1]=tableau1[i];
}
i++;
j=j+2;
}
for (nb=0;nb<=8;nb++)
{
printf("les tableaux valent %ld\n",tableau_resultat[nb]);
}
system("PAUSE");
return 0;
}
#include<stdio.h>
#include <stdlib.h>
int main(void)
{
long tableau1[4]={1,12,45,0};
long tableau2[5]={4,5,16,24,0};
long tableau_resultat[100];
int i=0,j=0,nb=0;
while (i <= 5)
{
if (tableau1[i]<tableau2[i])
{
tableau_resultat[j]=tableau1[i];
tableau_resultat[j+1]=tableau2[i];
}
else
{
tableau_resultat[j]=tableau2[i];
tableau_resultat[j+1]=tableau1[i];
}
i++;
j=j+2;
}
for (nb=0;nb<=8;nb++)
{
printf("les tableaux valent %ld\n",tableau_resultat[nb]);
}
system("PAUSE");
return 0;
}
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
31 mars 2008 à 11:49
31 mars 2008 à 11:49
c'est normal, ton algorithme ne tourne pas rond... en plus, avec un truc comme ça, si tu utilise des tableaux de taille différentes, tu vas encore te retrouver avec un plantage du à une mauvaise allocation mémoire.
while (i <= 5)
{
if (tableau1[i]<tableau2[i])
{
/// etc...
}}
i++;
or tu as tableau1 de taille 4 et tableau2 de taille 5... grumpf!!!
si tu déclares long tableau1[4];
tu as tableau1[0], tableau1[1], tableau1[2], tableau1[3] ET PUIS C'EST TOUT!!!!
tableau1[4] et tableau1[5] n'existent pas!!!! (ou plutôt ne sont pas alloués)
tu t'es retrouvé dans le cas ou le segment de mémoire que tu utilise n'est pas utilisé pour autre chose et c'est pour ça que ça n'a pas planté, mais ça aurait très bien pu planter.
sinon, le mieux pour passer dans tous les cas et voir tous les éléments de ton tableau, c'est de faire des boucles "for" imbriquées.
mais d'abord, tes tableaux "tableau1" et "tableau2" sont-ils triés au départ,
si ils ne sont pas triés, il faut les trier
ensuite, il faut les assembler de façon à ce que la réunion soit triée
il y a des façons de faire avec moins d'itération et en optimisant le tri, mais ça, c'est déjà une méthode qui marche, le reste, c'est du peaufinage.
while (i <= 5)
{
if (tableau1[i]<tableau2[i])
{
/// etc...
}}
i++;
or tu as tableau1 de taille 4 et tableau2 de taille 5... grumpf!!!
si tu déclares long tableau1[4];
tu as tableau1[0], tableau1[1], tableau1[2], tableau1[3] ET PUIS C'EST TOUT!!!!
tableau1[4] et tableau1[5] n'existent pas!!!! (ou plutôt ne sont pas alloués)
tu t'es retrouvé dans le cas ou le segment de mémoire que tu utilise n'est pas utilisé pour autre chose et c'est pour ça que ça n'a pas planté, mais ça aurait très bien pu planter.
sinon, le mieux pour passer dans tous les cas et voir tous les éléments de ton tableau, c'est de faire des boucles "for" imbriquées.
mais d'abord, tes tableaux "tableau1" et "tableau2" sont-ils triés au départ,
si ils ne sont pas triés, il faut les trier
ensuite, il faut les assembler de façon à ce que la réunion soit triée
il y a des façons de faire avec moins d'itération et en optimisant le tri, mais ça, c'est déjà une méthode qui marche, le reste, c'est du peaufinage.
Bien en faite au départ il sont déja trié mais à mon avis pour que le tableau résultat soit trié il faut comparé ligne par ligne j'ai pensé avec 3 while mais sa ne fonctionne pas non plus je ne vois pas trop comment procédé a vrai dire.
merci d'avance de me mettre sur la voix.
merci d'avance de me mettre sur la voix.
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
31 mars 2008 à 13:09
31 mars 2008 à 13:09
si tes 2 tableaux sont triés, c'est simple.
tu te mets sur le 1er élément de ton 1er tableau
tu vérifie si le 1er élément de ton 2e tableau lui est inférieur
si oui, tu mets le 1er élément du 2e tableau en 1ere position du tableau résultat, puis en restant sur le 1er élément du 1er tableau, tu compares au 2e élément du 2e tableau, et ainsi de suite.
quand tu arrives au dernier élément du 2e tableau, tu passes au 2e élément du 1er tableau et 1er élément du 2e tableau...
etc...
avec 2 boucles for, tu t'en sors... à toi de jouer.
tu te mets sur le 1er élément de ton 1er tableau
tu vérifie si le 1er élément de ton 2e tableau lui est inférieur
si oui, tu mets le 1er élément du 2e tableau en 1ere position du tableau résultat, puis en restant sur le 1er élément du 1er tableau, tu compares au 2e élément du 2e tableau, et ainsi de suite.
quand tu arrives au dernier élément du 2e tableau, tu passes au 2e élément du 1er tableau et 1er élément du 2e tableau...
etc...
avec 2 boucles for, tu t'en sors... à toi de jouer.
oui mais le souci c'est que au bout d'un moment sa bloque
#include<stdio.h>
#include <stdlib.h>
int main(void)
{
long tableau1[4]={1,12,45,0};
long tableau2[5]={4,5,16,24,0};
long tableau_resultat[100];
int i=0,j=0,nb=0;
for (i=0;i<4;i++)
{
if (tableau2[i]>tableau1[i])
{
tableau_resultat[j]=tableau1[i];
tableau_resultat[j+1]=tableau2[i];
}
else
{
tableau_resultat[j]=tableau2[i];
tableau_resultat[j+1]=tableau1[i];
}
j++;
j=j+1;
}
for (nb=0; nb != 8;nb++)
{
printf("les tableaux valent %ld\n",tableau_resultat[nb]);
}
system("PAUSE");
return 0;
}
Et la le résultat c'est : 1,4,5,12,16,45,0,24
#include<stdio.h>
#include <stdlib.h>
int main(void)
{
long tableau1[4]={1,12,45,0};
long tableau2[5]={4,5,16,24,0};
long tableau_resultat[100];
int i=0,j=0,nb=0;
for (i=0;i<4;i++)
{
if (tableau2[i]>tableau1[i])
{
tableau_resultat[j]=tableau1[i];
tableau_resultat[j+1]=tableau2[i];
}
else
{
tableau_resultat[j]=tableau2[i];
tableau_resultat[j+1]=tableau1[i];
}
j++;
j=j+1;
}
for (nb=0; nb != 8;nb++)
{
printf("les tableaux valent %ld\n",tableau_resultat[nb]);
}
system("PAUSE");
return 0;
}
Et la le résultat c'est : 1,4,5,12,16,45,0,24
j'ai trouvé sa
#include<stdio.h>
#include <stdlib.h>
int main(void)
{
long tableau1[4]={1,12,45,0};
long tableau2[5]={4,5,16,24,0};
long tableau_resultat[100];
int i=0,j=0,k=0,z=0,nb=0;
while (z<9)
{
while (tableau2[i]>tableau1[k])
{
tableau_resultat[j]=tableau1[k];
j++;
k++;
}
while (tableau2[i]<tableau1[k])
{
tableau_resultat[j]=tableau2[i];
j++;
i++;
}
z++;
}
for (nb=0; nb != 8;nb++)
{
printf("les tableaux valent %ld\n",tableau_resultat[nb]);
}
system("PAUSE");
return 0;
}
#include<stdio.h>
#include <stdlib.h>
int main(void)
{
long tableau1[4]={1,12,45,0};
long tableau2[5]={4,5,16,24,0};
long tableau_resultat[100];
int i=0,j=0,k=0,z=0,nb=0;
while (z<9)
{
while (tableau2[i]>tableau1[k])
{
tableau_resultat[j]=tableau1[k];
j++;
k++;
}
while (tableau2[i]<tableau1[k])
{
tableau_resultat[j]=tableau2[i];
j++;
i++;
}
z++;
}
for (nb=0; nb != 8;nb++)
{
printf("les tableaux valent %ld\n",tableau_resultat[nb]);
}
system("PAUSE");
return 0;
}
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
2 avril 2008 à 12:12
2 avril 2008 à 12:12
visiblement, tu ne sais pas ce que c'est que des boucles imbriquées
je te donne un petit exemple :
int nb1 = 257;
int tab1[257];
int nb2 = 3;
int tab2[3];
// code pour remplir mes tableaux tab1 et tab2
for(int i=0;i<nb1;i++)
{
for(int j=0;j<nb2;j++)
{
printf("la somme de l'élémnet %d du tableau 1 et de l'élément %d du tableau 2 est %d\n",i,j,tab1[i]+tab2[j]);
}
}
dans une même instruction, on joue à la fois sur l'indice de la première et de la 2e boucle, ça te permet de faire des combinaisons qui couvrent toutes les possibilités.
c'est de ça que tu as besoin dans ton cas
je te donne un petit exemple :
int nb1 = 257;
int tab1[257];
int nb2 = 3;
int tab2[3];
// code pour remplir mes tableaux tab1 et tab2
for(int i=0;i<nb1;i++)
{
for(int j=0;j<nb2;j++)
{
printf("la somme de l'élémnet %d du tableau 1 et de l'élément %d du tableau 2 est %d\n",i,j,tab1[i]+tab2[j]);
}
}
dans une même instruction, on joue à la fois sur l'indice de la première et de la 2e boucle, ça te permet de faire des combinaisons qui couvrent toutes les possibilités.
c'est de ça que tu as besoin dans ton cas
argentine
Messages postés
10
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
3 avril 2008
1
3 avril 2008 à 20:09
3 avril 2008 à 20:09
slt je vous propose la solution svte :
#include<stdio.h>
#include<conio.h>
/////////*fction remplir tab*////////
void remplirtableau(int *t,int k)
{ int i=1;
cprintf("Entrez la %d ‚re valeur:",i);/*textcolor pour une ecriture en couleur*/
scanf("%d",&t[i]); /*textcolor(12):couleur rouge*/
for(i=2;i<=k;i++)
{
textcolor(12);
cprintf("Entrez la %d ‚me valeur:",i);
scanf("\n%d",&t[i]);
}
}
////*recherche min dans un tableaux*/////////
int min(int *t,int k,int taille)
{int m;
int mini=t[k];
while(k<=taille)
{
if(mini>=t[k])
{m=k;mini=t[k];}
k++;
}
return(m);
}
void tri(int *t,int taille)
{int inv,inv1;
int i;
int temp;
for(i=1;i<=taille;i++)
{
temp=min(t,i,taille);
inv=t[i];
t[i]=t[temp];
t[temp]=inv;
}
}
void main()
{
int *tab1;
int *tab2;
int *tab;
int max1,max2,n1,n2;
int i=1;
int i1,i2,n;
clrscr();/*pour effacer l'ecrans*/
textcolor(12);
cprintf("Entrez la taille du tableaux1:",n1);
scanf("%d",&n1);
remplirtableau(tab1,n1);
cprintf("Entrez la taille du tableaux2:",n1);
scanf("%d",&n2);
remplirtableau(tab2,n2);
tri(tab1,n1);
tri(tab2,n2);
/***affichage des 2 tableaux ***********/
printf("\nvoici tableaux1:\n\n");
for(i=1;i<=n1;i++)
{textcolor(3);
printf("%d\t",tab1[i]);
}
printf("\nvoici tableaux2:\n\n");
for(i=1;i<=n2;i++)
{ textcolor(5);
printf("%d\t",tab2[i]);
}
/**************************************/
i1=1;i2=1;i=1;
while(i<=n1||i<=n2)
{
if(tab1[i1]<tab2[i2]) {tab[i]=tab1[i1];i1++;i++;}
else {tab[i]=tab2[i2];i2++;i++;}
}
while(i1<=n1) {tab[i]=tab1[i1];i++;i1++;}
while(i2<=n2) {tab[i]=tab2[i2];i++;i2++;}
n=i-1;
textcolor(6);
printf("\n\nvoici le tableau resultat :\n");
for(i=1;i<=n;i++)
printf("\t%d" ,tab[i]);
getch();/*pour stoper sur l'affichage*/
}
si vous avez des probleme avec la solution voici mon email :
argentine85@hotmail.fr
#include<stdio.h>
#include<conio.h>
/////////*fction remplir tab*////////
void remplirtableau(int *t,int k)
{ int i=1;
cprintf("Entrez la %d ‚re valeur:",i);/*textcolor pour une ecriture en couleur*/
scanf("%d",&t[i]); /*textcolor(12):couleur rouge*/
for(i=2;i<=k;i++)
{
textcolor(12);
cprintf("Entrez la %d ‚me valeur:",i);
scanf("\n%d",&t[i]);
}
}
////*recherche min dans un tableaux*/////////
int min(int *t,int k,int taille)
{int m;
int mini=t[k];
while(k<=taille)
{
if(mini>=t[k])
{m=k;mini=t[k];}
k++;
}
return(m);
}
void tri(int *t,int taille)
{int inv,inv1;
int i;
int temp;
for(i=1;i<=taille;i++)
{
temp=min(t,i,taille);
inv=t[i];
t[i]=t[temp];
t[temp]=inv;
}
}
void main()
{
int *tab1;
int *tab2;
int *tab;
int max1,max2,n1,n2;
int i=1;
int i1,i2,n;
clrscr();/*pour effacer l'ecrans*/
textcolor(12);
cprintf("Entrez la taille du tableaux1:",n1);
scanf("%d",&n1);
remplirtableau(tab1,n1);
cprintf("Entrez la taille du tableaux2:",n1);
scanf("%d",&n2);
remplirtableau(tab2,n2);
tri(tab1,n1);
tri(tab2,n2);
/***affichage des 2 tableaux ***********/
printf("\nvoici tableaux1:\n\n");
for(i=1;i<=n1;i++)
{textcolor(3);
printf("%d\t",tab1[i]);
}
printf("\nvoici tableaux2:\n\n");
for(i=1;i<=n2;i++)
{ textcolor(5);
printf("%d\t",tab2[i]);
}
/**************************************/
i1=1;i2=1;i=1;
while(i<=n1||i<=n2)
{
if(tab1[i1]<tab2[i2]) {tab[i]=tab1[i1];i1++;i++;}
else {tab[i]=tab2[i2];i2++;i++;}
}
while(i1<=n1) {tab[i]=tab1[i1];i++;i1++;}
while(i2<=n2) {tab[i]=tab2[i2];i++;i2++;}
n=i-1;
textcolor(6);
printf("\n\nvoici le tableau resultat :\n");
for(i=1;i<=n;i++)
printf("\t%d" ,tab[i]);
getch();/*pour stoper sur l'affichage*/
}
si vous avez des probleme avec la solution voici mon email :
argentine85@hotmail.fr