Now that's what I call indentation - learn to do something like it enjoy
Code:
#include <stdlib.h>
/*#include <conio.h> NOT NEEDED */
#include <stdio.h>
typedef struct cellule {
int info;
struct cellule *suivant; /* ADDED struct - make C++ code into C code */
} cellule, *liste;
liste nouveau()
{
return NULL;
}
liste suivant(liste p)
{
return (p->suivant);
}
int debut(liste l)
{
return l->info;
}
void afficher(liste tete)
{
liste p;
p = tete;
printf("\n\n");
printf("\n-----------------------------------------------------\n");
while (p != NULL) {
printf(" %d", p->info);
p = suivant(p);
}
printf("\n-----------------------------------------------------\n");
}
liste ajoutfin(liste l, int a)
{
/* liste p1, p2; - REMOVED USELESS VARS */
liste N = malloc(sizeof(cellule)); /* REMOVE CAST, USE CORRECT TYPE */
if (N != NULL) {
N->info = a;
N->suivant = l; /* USE parameter to link into existing list */
}
return N; /* ADDED THIS */
} /* ADDED THIS */
liste remplir_tete(liste p)
{
int i; /* MOVED FROM for loop, making code C (not C++) */
int n, a;
printf("Entrer le nombre d'elements de la liste: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("Entrer l'element %i: \n", i + 1);
scanf("%i", &a);
p = ajoutfin(p, a);
}
return (p); /* MOVED OUTSIDE FOR LOOP !!! */
} /* ADDED THIS */
int main()
{
liste l;
l = nouveau();
printf("saisie liste 1 --> remplir_tete\n");
l = remplir_tete(l);
afficher(l);
return (0); /* SUCCESS IS 0, not 1 */
}
And for heavens sake, learn the difference between C and C++