begin process at 2012 05 30 19:00:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

tri insertion langage C et appel de fonction


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

tri insertion langage C et appel de fonction

dimanche 30 novembre 2008 à 11:45:27 | tri insertion langage C et appel de fonction

washh

Bonjour,

Je débute en langage C et j'ai écrit l'algorithme du tri d'un tableau contenant des chaines de caractères, mais dès la compilation, le programme ne se lance pas, pouvez vous me montrer mon erreur. Merci

void TRI_INSERTION(char tab[][][], int nbreLig, int nbreCol){
int indi,indk; // position testée, le plus grand élément, élément tampon
char tampon[nbreLig+1][nbreCol][MAX_LETTRES+1];
     for(indi=2;indi<nbreLig;indi++){
       strcpy(tampon[][][], tab[indi][][]); // c'est a cet endroit qu'il mindique qu'il y a un probleme
       indk=indi;
       while((indk>1)&&(strcmp(tab[indk-1][][],tampon[][][])>0)){
         strcpy(tab[indk-1][][],tab[indk][][]);
         (indk=indk-1);
         }
       strcpy(tab[indk][][],tampon[][][]);
       }
}

ainsi que l'appel 
- en en tête : void TRI_INSERTION(char tab[][][], int *nbreLig, int *nbreCol);
- dans le programme principal : TRI_INSERTION(tab, &nbreLig, &nbreCol);

dimanche 30 novembre 2008 à 15:37:25 | Re : tri insertion langage C et appel de fonction

coucou747

Administrateur CodeS-SourceS
salut

http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/strcpy.3.html

mettre [] apres une variable (en dehors des declarations), c'est pas correct.

bon, sinon :
- pourquoi tu inserres sur un char *** ?
- char tampon[nbreLig+1][nbreCol][MAX_LETTRES+1]; pourquoi as tu besoin d'un tampon ? et pourquoi ce genre de declarations ? (c'est pas du C89 ca, et c'est piegeux comme declaration... parce-que c'est equivalent a un malloc, et pas a (nbrelig+1) * nbrecol mallocs)
- tu mets beaucoup trop de parentheses.

bon, ensuite, tu appelles ta fonction avec :
TRI_INSERTION(tab, &nbreLig, &nbreCol);
ce qui est incorrect, tu devrais mettre :
TRI_INSERTION(tab, nbreLig, nbreCol);


et quand tu demandes de l'aide, donne nous le message d'erreur, ca nous aide a comprendre pourquoi ca ne marche pas.
dimanche 30 novembre 2008 à 15:56:05 | Re : tri insertion langage C et appel de fonction

washh

Comme je l'ai dit je débute donc quand tu me parle de malloc, sa veut pas encore dire cgrand chose pour moi, mais merci sa me competera ma culture G .
J'utilise un tampon, car c'est un tri par insertion donc il faut que linformation soit stocké quelque part en attendant de déplacer l'autre information.
Le tampon est un char car ce sont des mots dans les cases du tableau.
Si tu as d'autres suggestions (autres tri à utiliser, tout aussi efficace), je suis open. J'ai choisi un tableau car je suis pas très doué avec les pointeurs..

J'ai donc modifié le programme :

void TRI_INSERTION(char tab[][][], int nbreLig, int nbreCol){
int indi,indk; // position testée, le plus grand élément, élément tampon
char tampon[nbreLig+1][nbreCol][MAX_LETTRES+1];
     for(indi=2;indi<nbreLig;indi++){
       strcpy(tampon, tab[indi]);
       indk=indi;
       while((indk>1)&&strcmp(tab[indk-1],tampon)>0){
         strcpy(tab[indk-1],tab[indk]);
         indk=indk-1;
         }
       strcpy(tab[indk],tampon);
       }
      
}
et mon appel de fonction :
void TRI_INSERTION(char tab[][][], int nbreLig, int nbreCol);

TRI_INSERTION(tab, nbreLig, nbreCol); // c'est a cette ligne que le message d'erreur s'affiche :
 [Warning] passing arg 1 of `TRI_INSERTION' from incompatible pointer type , cela signifie-til que je vais être obligé d'utiliser des pointeurs ??

Merci

dimanche 30 novembre 2008 à 16:39:08 | Re : tri insertion langage C et appel de fonction

coucou747

Administrateur CodeS-SourceS
si tu commences par decaller la fin, t'as pas besoin de tampon.


Cette discussion est classée dans : int, tri, insertion, tab, indk


Répondre à ce message

Sujets en rapport avec ce message

help une fonction qui a besoin de vous [ par natacha86 ] Re bonjour a tout le monde, voila j'ai mis tout le prog si vous voulez tester, en fait le pb viens de la fonctino tri_shell(), je ne sais pas pkoi ell pb en c urgenttttttttttttttttt [ par natacha86 ] bonjour, j'ai un probleme avec mon programme, il ne veut pas sortir, j'ai fais un menu et apparement ya un bug mais je ne comprend rien.le code est as encore un pb en c svp....... [ par natacha86 ] j'ai essayer de séparer les fonctions mais ca ne marche pas...#include #include #include #include #include #define MAX 1000000 Programme Tri à Bulle [ par tivanbelle ] Bonjour,J'ai fait ce programme en cours, c'est un tri a bullequi tri des valeur donc 2à2, mais le programme ne fonctionne pas. Pouvez vous me dire ce algorithme de tri [ par chegue02 ] Bonjour, svp vous pouvez mé corrigé ce code concernant l'algorithme de tri merci d'avance #include #include // fonction qui permet de trier tab en Simulateur & conduite automatique d'1 voiture [ par sonia393 ] Bonjour, voila, je suis en train de créer un petit simulateur de voiture avec conduite automatique : j'ai un état 1 (position, cap, vitesse, accélérat Probleme passage tab** de fonctions a fonction. [ par Nitrakz ] Bonjour tous le monde ! Comme l'explique le titre j'ai un petit soucis pour passer un tableaux a 2 dimensions tab[i][j] d'une fonction a une autre. convertir nombres en lettre [ par sofaranaya ] Bonsoir tout le monde! J'ai grand besoin d'une aide à propos d'un programme en c++. Voilà en ce moment je travaille sur un programme qui doit convert pile dynamique [ par korin221 ] Bonjour! Voila j'ai un problème. Je voudrais mélanger ma pile dynamique de façon aléatoire. Peut on directement mélanger la pile ou alors passer la pi


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,248 sec (3)

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