Inverted linked list In C

Hello friends ! , in my following code in C I want to invert my linked list in the display using a π—Ώπ—²π—°π˜‚π—Ώπ˜€π—Άπ˜ƒπ—² 𝗳uπ—»π—°π˜π—Άπ—Όπ—» ; but the code does not work !! Is there an error; thank you for mentioning it :+1:

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

struct cellule{
int a;
struct cellule *suivant;
};

//Recursive function to display the list in invers order

void affichage (struct cellule *liste){
while (liste!=NULL){
affichage(liste->suivant);
printf(" %d β€œ,liste->a);
}
}
int main()
{
struct cellule *liste,*p,*q,*r;
int n,i;
printf(β€œDonner le nombre d’elements de la liste:\n”);
scanf(”%d",&n);
printf(β€œEntrer les elements de la liste:\n”);
for(i=0;i<n;i++)
{
p=(struct cellule *)malloc(sizeof(struct cellule));
scanf(β€œ%d”,&(*p).a);
if(i==0) liste = p;
else (*q).suivant=p;
q=p;
}

affichage(liste);

printf(β€œ\n”);
system(β€œpause”);
return 0;
}