Tableaux en C : help svp !

Magenti Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
Magenti Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai du mal avec les tableaux en C. J'ai un exercice où je dois utiliser les tableaux dynamiques mais j'y comprends rien alors je l'ai d'abord fait avec des tableaux statiques.
Je dois écrire une fonction avec un tableau dynamique trié et un entier et renvoyer un 2e tableau trié avec l'entier.
Sans tableau dynamique ça donne ça :

#include <stdio.h>
#include <stdlib.h>
#include "lecture.h"

int f (int T[], int t, int x)
{
int i,n1,n2;
n1=lire_entier();
T[0]=n1;

for (i=1;i<t;i++)
{
n2 =lire_entier();
if (n2<n1)
{
printf("rentrez une valeur superieure \n");
i=i-1;
}
else
{
T[i]=n2;
n1=n2;
}
}

int t2,j;
t2=t+1;
int T2[t2];

for (j=0;j<t2;j++)
{
if ((x>T[i]) && (x<T[i+1]))
{
T2[j]=x;
}
if ((x<T[i]) && (x<T[i+1]))
{
T[i-1]=x;
}
if ((x>T[i]) && (x>T[i+1]))
{
T2[j]=T[i];
}

}
return T2;
}

int affichage (int T[], int t)
{
int i;

for (i=0;i<t;i++)
{
printf("%d \b", T[i]);
}

return 0;

}

int main ()
{
int t,x,t2;
t = lire_entier();
x = lire_entier();
int T[t],T2[t2];

f (T,t,x);

affichage (T2,t2);

return 0;
}

Le problème c'est qu'il marche pas, j'ai du mal avec ce genre de problème :(
Merci d'avance pour votre aide ! ^^

2 réponses

Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
Indique moi l'erreur de compilation...
Sinon, crois moi, c'est bien plus facile dynamiquement et plus souple aussi...

en dynamique, pour créer un tableau, tu fais comme ça:

 

int taille = 256; //La taille du tableau 
char *c; //Pointeur sur le tableau 

c = malloc(taille * sizeof(char)); //Création d'un tableau de caractère de 256 carac 



Ensuite tu peux y accéder soit par le pointeur, soit traditionnellement (c[3])




"Trotti Trotta, Monsieur P, y'a des anges qui veulent un bisou..."
0
Magenti Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Ok merci, je vais essayer mais j'ai du mal à voir la différence....faut dire que j'ai un cours pourri où c'est mal expliqué :S
Sinon, codeblocks compile mon algo mais il me renvoie plein de chiffres bizarres, pas ce que je veux en tout cas.
J'ai réussi à créer un tableau qui me trie les éléments au fur et à mesure que je les rentrent mais j'arrive pas à insérer un autre élément qui sera trié lui aussi. Je suis sure que c'est pas compliqué mais je vois vraiment pas lol !
0