求助

#include “stdafx.h”
#include “stdio.h”
#include “stdlib.h”
struct linklist
{
int data;
struct linklist *next;
};
typedef struct linklist node;
node *L,p;
void createlist(linklist L,int n)
{
L=(node
)malloc(sizeof(node));
L->next=NULL;
for(int i=n;i>0;–i)
{
p=(node
)malloc(sizeof(node));
printf(“input a number:”);
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
void print (node *list)
{
if (list->next!=NULL)
{
printf("%d–>",list->data);
if(list->next->next==NULL)
printf("%d",list->next->data);
print(list->next);
}
}

int main(int argc, char* argv[])
{
node * head;
head=(node* )malloc(sizeof(node));
int n;
printf(“input the number of nodes:”);
scanf("%d",&n);
createlist(head,n);
print(head);
return 0;
}
求助救助,为什么是乱码?