Aidez moi exercice en c
Résolu
argelino
-
messi89 Messages postés 28 Statut Membre -
messi89 Messages postés 28 Statut Membre -
Bonsoir,
voila svp
donnez moi la sol de cet exo en c merci (je n'ai besoin trés rapidement si vous pouvez)
on considere un mat[10][20] de chaine de caract.chaque ligne comporte un mot .choisir une methode de tri(bulle;selection;insertion) et appliquer a la matrice afin de la trier dans l'ordre croissant les mots enregistrer dans la mat
merci de votre aide
voila svp
donnez moi la sol de cet exo en c merci (je n'ai besoin trés rapidement si vous pouvez)
on considere un mat[10][20] de chaine de caract.chaque ligne comporte un mot .choisir une methode de tri(bulle;selection;insertion) et appliquer a la matrice afin de la trier dans l'ordre croissant les mots enregistrer dans la mat
merci de votre aide
Configuration: Windows XP Firefox 2.0.0.3
20 réponses
-
Creusons nous la tete pendant qu'il se tourne les pouces !!!
Sérieusement, si tu veux de l'aide, commence par essayer, et si tu as des problèmes, fais le nous savoir ! -
-
-
il faut que tu regarde la premiere case de chaque ligne et tu fait un tri par ordre alphabetique
voila
bonne chance
poste ce tu as essayé et on t'aideras -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
voial ce que j'ai pensé mais ça marche pas apperement
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{int p,i,n,j;char a[20];char x[20];
printf("donnez le nombre de mot\n");
scanf("%d",&n);
for(i=0;i<n;i++) {printf("donnez le %d eme mot",i);
gets(a);}
for(i=0;i<n;i++)
{for(j=n-1;j<=i;j--)
{for(p=0;p<20;p++)
{if (a[j-1][p]<a[j][p]) break;}
strcpy(x,a[j-1][p]);
strcpy(a[j-1][p],a[j][p]);
strcpy(a[j][p],x);
}
}
system("pause");
}
je suis totalement blocké aidez moi merci
au moin dite moi quel est l'idée a faire pour que je puisse reflichir
merci -
voila j'ai essayé de faire ça aussi
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
main()
{int i,j,n,m;
char ch[20],a[10][20];
char **p;
printf("donnez n:\n");
scanf("%d",&n);
printf("donnez m:\n");
scanf("%d",&m);
for(i=0;i<n;i++)
{printf("donnez le %deme mot:\n",i+1);
scanf("%s",ch);
strcpy(a[i],ch);}
for(i=0;i<=n-1;i++) {
if(ch[i]>ch[i+1]) {*(p+i)=ch[i+1];*(p+i+1)=ch[i];}
}
p=(char **)malloc(sizeof( char *));
for(i=0;i<n;i++)
{*(p+i)=a[i];
printf("%s\n",*(p+i));
}
system("pause");
} -
voila je me suis iscrit pour modifie le dernier poste mais je ne peut pas
voila
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
main()
{int i,j,n,m;
char ch[20],a[10][20];
char **p;
printf("donnez n:\n");
scanf("%d",&n);
printf("donnez m:\n");
scanf("%d",&m);
for(i=0;i<n;i++)
{printf("donnez le %deme mot:\n",i+1);
scanf("%s",ch);
strcpy(a[i],ch);}
p=(char **)malloc(sizeof( char *));
for(i=0;i<n;i++)
{*(p+i)=a[i];
printf("%s\n",*(p+i));
}
for(i=0;i<=n-1;i++) {
if(ch[i]>ch[i+1]) {*(p+i)=ch[i+1];*(p+i+1)=ch[i];}
}
p=(char **)malloc(sizeof( char *));
for(i=0;i<n;i++)
{*(p+i)=a[i];
printf("%s\n",*(p+i));
}
system("pause");
} -
tu peux faire plus simple
essaye ça:#include<stdio.h> #include<string.h> #include<stdlib.h> main() { int i,j; char tab[10][20];char x[20]; for(i=0;i<10;i++) { printf("donnez le mot %i : \n",i+1); scanf("%s",&tab[i]); } printf("tableau de mot avant tri\n"); for(i=0;i<3;i++) printf("%s\n",tab[i]); for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(tab[i][0]>tab[j][0]) { strcpy(x,tab[i]); strcpy(tab[i],tab[j]); strcpy(tab[j],x); } printf("\ntableau de mot apres tri\n"); for(i=0;i<3;i++) printf("%s\n",tab[i]); system("pause"); } -
regarde si on a 2mot
comme ça
aaa
aab
ton program ne compare que le 1er caract de chaque
mais merci quand meme tu ma donné une bonne idée -
voila je l'ai modifie mais ya tjr un pti prblm
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
int i,j,k;
char tab[10][20];char x[20];
for(i=0;i<5;i++)
{
printf("donnez le mot %d : \n",i+1);
scanf("%s",&tab[i]);
}
printf("tableau de mot avant tri\n");
for(i=0;i<5;i++)
printf("%s\n",tab[i]);
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
for(k=0;k<5;k++)
if(tab[i][k]>tab[j][k])
{
strcpy(x,tab[i]);
strcpy(tab[i],tab[j]);
strcpy(tab[j],x);
}
printf("\ntableau de mot apres tri\n");
for(i=0;i<5;i++)
printf("%s\n",tab[i]);
system("pause");
}
quand je lui donne ça
tableau de mot avant tri
amine
amina
aaa
xxx
bbb
voila le resultat
tableau de mot apres tri
xxx
bbb
aaa
amina
amine
ou est l'erreur aidez moi svp -
il tri dans l'ordre inverse il faut peut etre inverser le test...
-
-
-
-
j'ai rien trouvé le prgram bug encore y'aura pas quelqu'un parmi vous qui peut m'aider svp
j'ai besoin de la sol -
pourtant je t'ai donné la solution s'ils ont le meme caractere il faut regarder le suivant
essaye ça#include<stdio.h> #include<string.h> #include<stdlib.h> main() { int i,j,k=0,l=0; char tab[5][20];char x[20]; for(i=0;i<5;i++) { printf("donnez le mot %i : \n",i+1); scanf("%s",&tab[i]); } printf("tableau de mot avant tri\n"); for(i=0;i<5;i++) printf("%s\n",tab[i]); for(i=0;i<4;i++){ for(j=i+1;j<5;j++){ k=0;l=0; while(tab[i][k]==tab[j][l]){ k++;l++;} if(tab[i][k]>tab[j][l]) { strcpy(x,tab[i]); strcpy(tab[i],tab[j]); strcpy(tab[j],x); } } } printf("\ntableau de mot apres tri\n"); for(i=0;i<5;i++) printf("%s\n",tab[i]); system("pause"); } -
-
Salut,
voici encore une possibilité#include<stdio.h> #include<string.h> #include<stdlib.h> main () { int i, j, k; char tab[10][20]; char x[20]; for (i = 0; i < 5; i++){ printf ("donnez le mot %d : \n", i + 1); scanf ("%s", &tab[i]); } printf ("tableau de mot avant tri\n"); for (i = 0; i < 5; i++) printf ("%s\n", tab[i]); for (i = 0; i < 5; i++){ j = i; while (j>0 && strcmp(tab[j],tab[j-1]) < 0){ strcpy (x, tab[j-1]); strcpy (tab[j-1], tab[j]); strcpy (tab[j--], x); } } printf ("\ntableau de mot apres tri\n"); for (i = 0; i < 5; i++) printf ("%s\n", tab[i]); system ("pause"); } -
essaye ça mon frere et salue boukhedouma de ma part :)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
int i,j,k,l,n;
char tab[5][20];char x[20];
printf("donnez le nbre de mots:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("donnez le mot %i : \n",i+1);
scanf("%s",&tab[i]);
}
printf("tableau de mot avant tri\n");
for(i=0;i<n;i++)
printf("%s\n",tab[i]);
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
k=0;l=0;
while(tab[i][k]==tab[j][l]){
k++;l++;}
if(tab[i][k]>tab[j][l])
{
strcpy(x,tab[i]);
strcpy(tab[i],tab[j]);
strcpy(tab[j],x);
}
}
}
printf("\ntableau de mot apres tri\n");
for(i=0;i<n;i++)
printf("%s\n",tab[i]);
system("pause");
}
a bientot
------------------
http://forum.ouedkniss.com