Recherche Séquentielle Tableau deux dimensions
Résolu/Fermé
faresk93
Messages postés
18
Date d'inscription
mardi 12 février 2013
Statut
Membre
Dernière intervention
10 février 2014
-
23 mai 2013 à 15:33
faresk93 Messages postés 18 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 10 février 2014 - 23 mai 2013 à 23:54
faresk93 Messages postés 18 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 10 février 2014 - 23 mai 2013 à 23:54
A voir également:
- Windev tableau 2 dimensions
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
23 mai 2013 à 21:44
23 mai 2013 à 21:44
J'ai codé ce programme ci, il fonctionne parfaitement sauf que la recherche ne se fait que sur la première ligne.
Ton programme contient plein d'erreurs, qui sont traduites en warning. Voilà pourquoi il est important de corriger tous les warnings ;-).
int i,j,l,c={0,0,0,0};
c est un nombre. Donc tu ne peux pas l'initialiser comme un tableau => c=0;
Si tu veux tout initialiser en même temps : int i,j,l,c; i=j=l=c=0;
Ou tout simplement : int i, j, l, c; (initialiser par défaut à 0).
Enfin, les variables globales sont à éviter. Il vaut mieux que les variables soient locales.
#include<conio.h>
Non standard.
void main()
Non standard. Le prototype de main() sans argument est : int main(void).
Et la fonction retourne un 0 : return 0;
int tab[l][c],x,pos1,pos2;
Dis autrement : int tab[0][0] (puisque l=c=0)...
Attention, donc aux valeurs. De plus, en C (ISO C89/90), tu ne peux mettre des variables pour définir les dimensions d'un tableau : int tab[LIGNE][COLONNE]; avec #define LIGNE 5 et #define COLONNE 6 (par exemple).
Dans ton cas, tu souhaites faire de l'allocation dynamique. Il faut donc passer par malloc(). Par exemple : int **tab;
tab=malloc(l*sizeof(int*));
for(i=0;i<l;i++) tab[i]=malloc(c*sizeof(int));
Ne pas oublier de faire les free (en sens inverse).
getch();
system("exit");
A remplacer par : system("pause"); return 0;
void abort(void);
A enlever du main().
Cdlt,
Ton programme contient plein d'erreurs, qui sont traduites en warning. Voilà pourquoi il est important de corriger tous les warnings ;-).
int i,j,l,c={0,0,0,0};
c est un nombre. Donc tu ne peux pas l'initialiser comme un tableau => c=0;
Si tu veux tout initialiser en même temps : int i,j,l,c; i=j=l=c=0;
Ou tout simplement : int i, j, l, c; (initialiser par défaut à 0).
Enfin, les variables globales sont à éviter. Il vaut mieux que les variables soient locales.
#include<conio.h>
Non standard.
void main()
Non standard. Le prototype de main() sans argument est : int main(void).
Et la fonction retourne un 0 : return 0;
int tab[l][c],x,pos1,pos2;
Dis autrement : int tab[0][0] (puisque l=c=0)...
Attention, donc aux valeurs. De plus, en C (ISO C89/90), tu ne peux mettre des variables pour définir les dimensions d'un tableau : int tab[LIGNE][COLONNE]; avec #define LIGNE 5 et #define COLONNE 6 (par exemple).
Dans ton cas, tu souhaites faire de l'allocation dynamique. Il faut donc passer par malloc(). Par exemple : int **tab;
tab=malloc(l*sizeof(int*));
for(i=0;i<l;i++) tab[i]=malloc(c*sizeof(int));
Ne pas oublier de faire les free (en sens inverse).
getch();
system("exit");
A remplacer par : system("pause"); return 0;
void abort(void);
A enlever du main().
Cdlt,
faresk93
Messages postés
18
Date d'inscription
mardi 12 février 2013
Statut
Membre
Dernière intervention
10 février 2014
Modifié par faresk93 le 23/05/2013 à 20:05
Modifié par faresk93 le 23/05/2013 à 20:05
J'ai transformé le travail de la recherche (main) en une procedure et voilà le programme fonctionne parfaitement !
C'est quoi le problème exactement si l'on écrit en main ?
C'est quoi le problème exactement si l'on écrit en main ?
23 mai 2013 à 22:59
23 mai 2013 à 23:54
Merci fiddy !
???? ???? ???