Моя проблема в том, что программа при компиляции не показывает последний элемент в списке. Помимо функций, которые я приведу далее, у меня есть функция, которая инициализирует список и еще одну для добавления элементов в список, и они работают просто отлично, теперь я знаю, что это потому, что, скажем, я ввел 4 элемента "afficher_liste" Функция (которая должна печатать список) печатает только 3. Если я добавлю 5-й элемент, функция «afficher_liste» напечатает 4 элемента, если я добавлю 6-й элемент, то будет напечатано 5 элементов. Новый последний элемент попадает в список и является его частью, он просто не печатается. Я надеюсь, что смог объяснить проблему ..
typedef struct{
char nom[20];
float surface;
int habitants;
}ville;
typedef struct{
ville data;
struct element* suivant;
}element;
typedef struct{
ville* T;
}liste;
void afficher_ville(ville*v){
printf("****************info ville********************");
printf("le nom de la ville :%s \n", v->nom);
printf("le nombre des habitants de la ville :%d \n", v->habitants);
printf("la surface de la ville :%.2f \n", v->surface);
}
void afficher_liste(liste* l)
{
if(l->T==NULL){exit(-1);}
element *aide = l->T;
int lg=0;
do
{ lg++;
afficher_ville(&aide->data);
aide= aide->suivant;
} while(aide->suivant != l->T);
printf("longeur* %d\n",lg);
}