begin process at 2012 02 12 06:06:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

aide par rapport a l'appel d'une méthode


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

aide par rapport a l'appel d'une méthode

lundi 7 février 2005 à 21:12:32 | aide par rapport a l'appel d'une méthode

natacha86

quel est le probleme de ma méthode init_tab ? le programme s'arrete aprse etre passé dans cette méthode, il plante, et ne rentre pas dans la méthode de tri_bulle...
j'ai pas mis tout le programme, c'est normal qu'il y ait un grand menu,


#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>

#define MAX 1000000


/************************ programme principal ****************************/

void main(void)
{
    /* déclarations */
     int choix=0,cont;
     cont=1;
     while(cont==1){
           printf("\n\n\t\t\t     ****************\n");
           printf("\t\t\t     *MENU PRINCIPAL*\n");
           printf("\t\t\t     ****************\n\n\n\n");
           printf("\t   TAPEZ :\n\n\n\n");
           printf("\t\t1\t   Pour :\t    Lancer le prog de tri a bulle\n\n");
           printf("\t\t2\t   Pour :\t    Lancer le prog de tri par insertion\n\n");
           printf("\t\t3\t   Pour :\t    Lancer le prog de tri par ext\n\n");
           printf("\t\t4\t   Pour :\t    Lancer le prog de tri shell\n\n");
           printf("\t\t5\t   Pour :\t    Lancer le prog de tri fusion\n\n");
           printf("\t\t6\t   Pour :\t    Lancer le prog de tri rapide\n\n");
           printf("\t\t7\t   Pour :\t    Quitter le programme\n\n\n");
           printf("\t   CHOIX : ");
           scanf("%d",&choix);
           switch(choix)
           {
                 case 1 :
                      init_tab();
                      tri_bulle();
                      break;

                 case 2 : tri_ins();
                      break;

                 case 3 : tri_ext();
                      break;

                 case 4 : tri_shell();
                      break;

                 case 5 : tri_fusion();
                      break;

                 case 6 : tri_rapide();
                      break;

                 default : cont=0;      /* sortie du programme*/
           }
     }
}

/****************************tri bulle*********************************/

void init_tab() {

    int nb,i,j,v,tab[MAX];  /* Déclarations */

    srand(time(NULL));           /* Initialisation du générateur aléatoire avec la fontion time */
    printf("\n\n Nombre de valeurs a trier (du tableau)  : ");
    scanf("%d", &nb);            /* Demande le nombre d'éléments à trier */
    printf("\n");

    for(i=0;i<nb;i++)            /* Remplissage du tableau aléatoirement */
        tab[i]=rand();

    printf("Les valeurs avant le tri :     ");   /* affichage du tableau */
    for(i=0; i<nb;i++)
        printf("\n%d       ",tab[i]);
}

int tri_bulle()
{
    int nb,i,j,v,tab[MAX];  /* Déclarations */

    for (i=0; i<nb; i++)    /* tri */
        for (j=nb-1; j>i; j--)
            if (tab[j-1]>tab[j])
            {
    v=tab[j-1];
                tab[j-1]=tab[j];
                tab[j]=v;
             }

    printf("\n\nLes valeurs apres le tri :");   /* affichage du tableau */
    for(i=0; i<nb;i++)
        printf("\n%d       ",tab[i]);

    system("PAUSE");
}

lundi 7 février 2005 à 22:23:40 | Re : aide par rapport a l'appel d'une méthode

errikke

Il n'y a pas de retour a la fin de chaque methode. Pour une fonction renvoyant un type void, il faut terminer par : return;
mardi 8 février 2005 à 09:13:48 | Re : aide par rapport a l'appel d'une méthode

ymca2003

Tu déclares un tableau de 1000000 int en local dans la fonction c'est à dire sur la pile => elle explose et ton programme plante en sortie de la fonction. On ne déclare jamais de tels tableaux en static, on les alloue dynamiquement avec malloc ou new. Ou alors prend une valeur de MAX un peu plus raisonnable...

errikke -> 'return' est inutile à la fin d'une fonction retournant void.
mardi 8 février 2005 à 10:26:26 | Re : aide par rapport a l'appel d'une méthode

natacha86

c'est le prof qui nous a demandé de faire des test et des grphique par rapport au temps ! c'est pour ca, il faut tester jusqu'a 1000000.
J'suis pas si stupide quand mem
mais si vous voulez poser un post pour m'aider a ce que j'avais demander vous avez le droit ...

mardi 8 février 2005 à 10:39:50 | Re : aide par rapport a l'appel d'une méthode

ymca2003

Si c'est votre prof qui vous a dit de déclarer en local des tableaux de cette taille c'est qu'il a jamais programmé de sa vie (mon post répondait exactement à la question et au problème qui était un stack overflow).

Une autre petite chose ta fonction init_tab initialise un tableau en local donc en sortie de la fonction le contenu est perdu. Il faudrait la passer en global.

voici ce que tu peux faire :
- déclare int* tab en var global
- faire tab = malloc(MAX*sizeof(int)) and init_tab;
- rajouter une fonction free_tab qui va faire free(tab);
=> comme cela toute les fonctions auront accès au tableau qui sera créé dynamiquement.
mardi 8 février 2005 à 12:04:51 | Re : aide par rapport a l'appel d'une méthode

natacha86

je suis une novice, tu peux m'expliquer en faisant des copier collé dans mon prog stp ?


Cette discussion est classée dans : lancer, tri, printf, include, tab


Répondre à ce message

Sujets en rapport avec ce message

a l aiiiiiiiiidddddeeeeeeeee [ par natacha86 ] je ne comprend pas pkoi le programme une fois qu'il a lancé le premier choix du menu a la fin il ne reviens pas au menu, il s'arrete directement, merc menu avec un switch [ par natacha86 ] je ne comprend pas pkoi le programme une fois qu'il a lancé le premier choix du menu a la fin il ne reviens pas au menu, il s'arrete directement, merc 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 Chaine de caractère [ par Thanatoster ] Bonjour a tous, mon problème est le suivant, pour les cours je dois faire un programme d'apres l'énoncé suivant"saisir au clavier des éléments chaine 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 HELP [ par alex64100 ] BONOURje doit réaliser un   prog de tri de caractèresvoici mon code#include #include #include #include int main (int argc,  char ar 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 Tableau C [ par 3463 ] Salut à tous j'ai vraiment besoin de votre aide !! [code=cpp] # include # include # include # include # include # include # include using nam


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,310 sec (4)

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