begin process at 2012 05 28 20:59:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

encore un pb en c svp.......


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

encore un pb en c svp.......

samedi 5 février 2005 à 17:14:30 | encore un pb en c svp.......

natacha86

j'ai essayer de séparer les fonctions mais ca ne marche pas...

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

#define MAX 1000000



/************************ tri rapide ****************************/


void init_tab(){

    int i,nb,tab[MAX];
 
    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++)
        tab[i]=rand();

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

void affich_tab(int tab[],int taille) {

    int i;

    printf("\n\nLes valeurs apres le tri :");
    for(i=0; i<taille;i++)
        printf("\n%d       ",tab[i]);
}

// réordonne le tableau et rend l'indice de séparation
int permutation(int T[], int a, int b) {
 int i, j, pivot, bi = a, bs = b, r, TI[b];
 
 // choix du pivot
 pivot = T[a];
 
 for(i=a;i <= b;i++) {
         if (T[i] < pivot) { TI[bi] = T[i]; bi++; }
         if (T[i] > pivot) { TI[bs] = T[i]; bs--; }
  }

  /* On place le ou les pivots */

  for(i=bi;i<=bs;i++) { TI[i] = pivot; }

  /* recopie de TI */

  for(i=a;i <= b;i++) {
         T[i] = TI[i];
         if (T[i] == pivot) { r = i; }
  }
    return r;
}

void rapide(int T[], int a, int b) {
 
  int separe;

  if (a < b) {
 separe = permutation(T, a, b);
 rapide(T, a, separe-1);
 rapide(T, separe+1, b);
  }
}

void tri_rapide() {

    int i,nb,tab[MAX];

    init_tab();

    rapide(tab, 0, nb-1);

    affich_tab(tab,nb);
    system("PAUSE");
    main();

}


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

int main()
{
    /* déclarations */
     int choix=0;

     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\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 6 : tri_rapide();
                 break;

        case 7 : break;

     }

}

samedi 5 février 2005 à 18:05:32 | Re : encore un pb en c svp.......

luhtor

C'est quoi le problème ? ca aiderait un peu


samedi 5 février 2005 à 18:18:06 | Re : encore un pb en c svp.......

bayeto

Membre Club
moi c'est ton #define MAX 1000000 qui me fais peur. Blague a part tu alloue 4Mo sur la pile dans chaque fontion avec ton int tab[MAX];
samedi 5 février 2005 à 18:22:32 | Re : encore un pb en c svp.......

Joky

Membre Club

Alors déja tu fais un rand sans inclure la librairie <time.h>

En suite, tu dis à une fonction, d'aller dans la fonction suivante, mais la fonction suivante est déclarée en dessous.
En Sachant que ton compilateur lit ligne par ligne, c'est un peu normal qu'il refuse.

Donc solution, définit des prototypes pour tes fonctions.
Un prototype est le nom de la fonction, le type, et ses arguments placés à la suite de tes includes.

En gros ça donne ca :

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

#define MAX 1000000

void tri_rapide();
void init_tab();
void affich_tab(int ,int );
int permutation(int , int , int );

Bon j'ose te dire que ton code est crade, mais bon c'est toi qui voit pour sa clarté ;)

void Aurevoir( void ); //Bonne journée

samedi 5 février 2005 à 18:46:53 | Re : encore un pb en c svp.......

natacha86

je ne comprend rien
samedi 5 février 2005 à 18:48:49 | Re : encore un pb en c svp.......

natacha86

il plante au moment ou il rentre dans la fonction rapide, comme si il n'avait pas pris en compte le tableau de la fonction init_tab
dimanche 6 février 2005 à 10:58:49 | Re : encore un pb en c svp.......

luhtor

Bas, met ton tableau tab en variable globale, ca pourrait aider ...


lundi 7 février 2005 à 19:29:35 | Re : encore un pb en c svp.......

natacha86

je suis novice, des exemples pourrient m'aider merci...


Cette discussion est classée dans : int, tri, printf, tab, rapide


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 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 Puissance 4 en C [ par drinky05 ] Bonjour, j'aurai besoin d'aide pour mon programme, grand débutant, c'est pour un projet en cours, je dois réaliser un puissance 4, il fonctionne a peu CONVERSION BINAIRE/HEXA [ par alex64100 ] BJR,je dois développer un prog d e conversion   binaire/héxaa partir de ce code  :#include #include #include /*  exo 2.Becrire un n tri insertion langage C et appel de fonction [ par 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 program 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 Probleme de fonction sur la bataille navale... [ par YASS_95 ] Bonjour à tous, Je travaille sur un projet qui est le jeu de la bataille navale et j'ai un petit probleme de fonctions... je vais vous expliquer. J'a [AIDE] Finition mastermind SVP [ par ribery91720 ] Bonjour a tous, Voila j'ai fait un mastermind des plus basiques sans graphisme ni rien mais il ne marche pas dans tous les cas Je vous met mon code : 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


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

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