A voir également:
- Remplir un tableau de structure en c
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Organigramme a remplir word - Guide
- Trier un tableau excel - Guide
2 réponses
ydurce
Messages postés
78
Date d'inscription
samedi 9 octobre 2010
Statut
Membre
Dernière intervention
12 décembre 2010
18
24 oct. 2010 à 20:13
24 oct. 2010 à 20:13
bonjour,
quelques conseils:
le typedef ne doit pas apparaitre dans le corps du main, c'est une déclaration d'un type 'personnel' qui devrait se trouver dans un fichier header .h qu'il faudra ensuite inclure dans le .c avec un #include
Quand vous allouez de la mémoire pour un tableau dynamique, allouez la totalité du tableau d'un coup (vous en connaissez la taille) et faites ensuite votre boucle pour le remplir.
votre algo ne marche pas puisque le compilateur va construire le code pour allouer de la mémoire sur le pointeur 'tableau' et seul 'tableau[0]' sera accessible. les autres tableau[1]..tableau[taille-1] taperons n'importe où.
Le type de next est un pointeur sur une structure ntab. Vous devez y affecter un pointeur vers l'élément suivant du tableau (qui est une structure ntab).
bon courage!
quelques conseils:
le typedef ne doit pas apparaitre dans le corps du main, c'est une déclaration d'un type 'personnel' qui devrait se trouver dans un fichier header .h qu'il faudra ensuite inclure dans le .c avec un #include
Quand vous allouez de la mémoire pour un tableau dynamique, allouez la totalité du tableau d'un coup (vous en connaissez la taille) et faites ensuite votre boucle pour le remplir.
votre algo ne marche pas puisque le compilateur va construire le code pour allouer de la mémoire sur le pointeur 'tableau' et seul 'tableau[0]' sera accessible. les autres tableau[1]..tableau[taille-1] taperons n'importe où.
Le type de next est un pointeur sur une structure ntab. Vous devez y affecter un pointeur vers l'élément suivant du tableau (qui est une structure ntab).
bon courage!
Bonsoir à tous,
Voici mon nouveau code
ce code permet de saisir les éléments du tableau mais j'ai pas pu le modifier pour assurer le tri
#include <stdio.h>
#include<stdlib.h>
int main (void){
int i;
int *p,x;
typedef struct ntab {
int nbr ;
struct ntab *next ;
}ntab;
int taille;
printf("Donner la taille du tableau\n",0);
scanf("%d",&taille);
printf("Donner l'element n°1=\n",0);
scanf("%d\n",&x);
ntab *tableau=malloc(sizeof(ntab));
p=tableau;
tableau[0].nbr=x;
tableau[0].next=p++;
printf("l'adresse de l'elemt suivant est: %d\n",tableau[0].next);
for(i=1;i<taille;i++)
{
printf("Donner l' element n°%d:\n",i+1);
scanf("%d\n",&x);
ntab *tableau=malloc(sizeof(ntab));
tableau[i].nbr=x;
tableau[i].next=p++;
printf("l'adresse de l'element suivant =%d ",tableau[i].next);
printf("\n");
}
return 0;
}
Je serai très reconnaissante si vous pourriez m'aider.
Voici mon nouveau code
ce code permet de saisir les éléments du tableau mais j'ai pas pu le modifier pour assurer le tri
#include <stdio.h>
#include<stdlib.h>
int main (void){
int i;
int *p,x;
typedef struct ntab {
int nbr ;
struct ntab *next ;
}ntab;
int taille;
printf("Donner la taille du tableau\n",0);
scanf("%d",&taille);
printf("Donner l'element n°1=\n",0);
scanf("%d\n",&x);
ntab *tableau=malloc(sizeof(ntab));
p=tableau;
tableau[0].nbr=x;
tableau[0].next=p++;
printf("l'adresse de l'elemt suivant est: %d\n",tableau[0].next);
for(i=1;i<taille;i++)
{
printf("Donner l' element n°%d:\n",i+1);
scanf("%d\n",&x);
ntab *tableau=malloc(sizeof(ntab));
tableau[i].nbr=x;
tableau[i].next=p++;
printf("l'adresse de l'element suivant =%d ",tableau[i].next);
printf("\n");
}
return 0;
}
Je serai très reconnaissante si vous pourriez m'aider.