begin process at 2012 05 29 08:48:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Help! Pb de spécif en C


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

Help! Pb de spécif en C

vendredi 23 septembre 2005 à 05:26:40 | Help! Pb de spécif en C

tomalille

Bonjour, je suis en train d'écrire un programme et je voudrai faire une fonction qui renvoit un tableau d'entier.
Je n'arrive pas à faire la spécif.
Vous verrez dans le programme suivant, je veux que dénombrement renvoi un tableau de int.
De plus mon prog fonctionne bien mais quand on demande à windows une liste de plus de 30 éléments avec le tri base alors ca plante! Bizare!!

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


void bulle(int* tab,int max);
void base(int* tab,int max);
int denombrement(int* tab,int c,int max);

void main(void)
{
 //Initialisation des variables
  int max =5;
  int i = 0;
  int temp = 0;
  int* tab = NULL;
  printf("\n Entrer la longueur du tableau \n");
  scanf("%d",&max);
  tab = (int*)malloc(max*sizeof(int));


 //valeur au hasard
 srand( (unsigned)time( NULL ));
 for( i = 0;i < max;i++ )
 tab[i]=rand();

 //Présentation du tableau
  printf("\n **** Tableau de depart **** \n");
  for(i=0;i<max;i++)
   printf("%d \n",tab[i]);
 
 // bulle(tab,max);
  base(tab,max);
// denombrement(tab,1,max);

  free(tab);
}

 //Tri par bulles

void bulle(int* tab,int max)
{
 int i =0;
 int ok = 1;
 int temp = 0;

 do
 {
  ok=1;
  for(i=1;i<max;i++)
   {
   if(tab[i-1]>tab[i])
    {
   ok=0;
   temp=tab[i-1];
   tab[i-1]=tab[i];
   tab[i]=temp;
   }
  }

 }while(!ok);

 //Résultat final
 printf("\n **** Tableau final **** \n");
 for(i=0;i<max;i++)
  printf("%d \n",tab[i]);
 printf("\n");
 
}

int denombrement(int* tab,int c,int max)
{
int i = 0;
int k = 9;
int lg = max;
int div = 1;
int* tab1 = NULL; // Tableau de compte
int* tab2 = NULL; // Tableau de résultats
int* inter = NULL; //tableau de travail

 //construction du div
for(i=1;i<=c;i++)
{
 div=div*10;
}

 //construction du tableau de travail
inter = (int*)malloc((max)*sizeof(int));
for(i=0;i<max;i++)
{
 inter[i]=tab[i]%div/(div/10);
// printf("\n %d \n ",inter[i]);
}

 //recherche de la valeur maximale du tableau
/*for(i=0;i<max;i++)
 {
  if(inter[i]>k)
   k=inter[i];
 }
*/
 //Construction du "tableau de compte"
tab1 = (int*)malloc((k+1)*sizeof(int));
for(i=0;i<=k;i++)

 tab1[i]=0;
 
}

for(i=0;i<max;i++)
{
 tab1[inter[i]]=tab1[inter[i]]+1;
 
}
  
for(i=1;i<k+1;i++)
{
 tab1[i]=tab1[i]+tab1[i-1];
// printf("\n %d -> %d \n",i,tab1[i]);
}


 //Construction du tableau de résultats
tab2 = (int*)malloc(lg*sizeof(int));

for(i=0;i<lg;i++)

 tab2[i]=0;
// printf("\n %d -> %d \n",i,tab2[i]);
}

for(i=lg-1;i>=0;i--)
{
 tab2[tab1[inter[i]]-1]=tab[i];
 tab1[inter[i]]=tab1[inter[i]]-1;
// printf("\n %d -> %d \n",tab1[inter[i]],inter[i]);
}

for(i=0;i<lg;i++)
{
 printf("\n %d -> %d \n",i+1,tab2[i]);
}

return tab2;

free(inter);
free(tab2);
free(tab1);
}


 //Tri par base
void base(int* tab,int max)
{
 int i=0;
 int temp=0;
 int buff = 0;
 int div=1;
 int c=1; //Nombre de chiffres max de représentation des valeurs à tester

 for(i=0;i<max;i++)
 {
  buff=tab[i];
  temp=0;
 
  do
  {
   
   buff=buff/div;
   temp=temp+1;
   div=div*10;
  }while(buff!=0);
  if(temp+1>c)
   c=temp+1;
  temp=0; 
 }
// printf("\n %d \n",c);

  //Algorithme de tri
 for(i=c;i>=1;i--)
 {
  printf("\n *********** Etape %d ************ \n",c-i+1);
  denombrement(tab,i,max);
 }

}

Ce serait sympa de me donner une piste merci!
Thomas

samedi 24 septembre 2005 à 01:36:45 | Re : Help! Pb de spécif en C

Joky

Membre Club
Réponse acceptée !
int* ReturnTabAuCarre(int* Tab, int n)
{
    int *TabToReturn = (int*)malloc(sizeof(int) * n);
   
    for(int i=0; i<n; i++)
       TabToReturn[i] = Tab[i]*Tab[i];

    return TabToReturn;
    free(TabToReturn);
}

if(!Meilleur("Joky")) return ERREUR;<



Cette discussion est classée dans : int, tab, for, max, tab1


Répondre à ce message

Sujets en rapport avec ce message

problème avec des listes > 30 éléments [ par tomalille ] Bonjour,je finalise un programme qui fonctionne parfaitement sauf que je ne peux pas travailler avec une liste de plus de 30 éléments pour le tri par Pb à l'exécution [ par tomalille ] Bonjour,J'ai un petit pb à l'execution de ce prog. Il compile et les liens sont fait sans erreur ni warning. Par contre lorsque j'appelle le sous-prog tri tableau en ligne [ par TWITTI ] bonjour , je suis etudiant en mécanique et la programmtion c est embetant pour moi.J ai un probleme sur mon programme main().Je n arrive pas a faire tableau [ par imanedaoudi ] Salut,Je veux récuperer le tableaux triée sans faire return, avec ce programme je recupere le tableau non trier ,comment faire pour recuperer le tab t compilation mai au lancement "erreur la memoire ne peu pas pas etre read" [ par touny23 ] je maitrise pas tro le C.mai comme j ai un projet a faire dessus pour la rentré , je sui obligé de m y mettre .j arrive a compiler sous dev-cpp mai lo probleme a la creation d'une dll [ par anthonycosson ] salut a tous donc voila mon probleme, j'ai fait une classe et ensuite j'ai voulu la mettre en dll mais lorsque je compile cette erreur la s'affiche qu Besoin d'aide urgent SVP [ par paulina82 ] Bonjour, j'ai un gros probleme avec mon programme ecri en langage C.lorsque je complile il n'afiche pa d'erreur mais lorsque j'esaye de l'executé il Problem Affichage de mon Tableau [ par Orezza ] salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le 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 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


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 : 0,515 sec (4)

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