这是我编写的一个小程序段,目的是:输入学号、姓名、性别,然后再输出。
可是运行时第35、38和41行总有一个相同的错误提示:cpp(35) : error C2106: '=' : left operand must be l-value。
请问这是怎么回事啊?
具体程序如下:
//目的:输入学号,姓名,性别.然后再输出
#include <stdio.h>
#include <malloc.h>
struct goo
{
char Student_number[10];
char name[20];
char sex[10];
float money;}; typedef struct node
{
struct goo data;
struct node *link;
}linklist,Node;
void add(linklist*);
void show(linklist*);
void main()
{
linklist *head;
head=(linklist*)malloc(sizeof(linklist));
head->link=NULL;
add(head);
show(head);
}
void add(linklist* head)
{
Node *q;
char sn[10];
char n[20],s[10];
q=(Node*)malloc(sizeof(Node));
printf("Please enter student number:");
scanf("%d",&sn);
q->data.Student_number=sn; //有错,Why?
printf("Please enter name:");
scanf("%s",&n);
q->data.name=n; //有错,Why?
printf("Please enter sex:");
scanf("%s",&s);
q->data.sex=s; //有错,Why?
q->link=head->link;
head->link=q;
}
void show(linklist *head)
{
Node *p;
p=head->link;
while(p!=NULL)
{
printf("Student number:%d\n",p->data.Student_number);
printf("name:%s\n",p->data.name);
printf("sex:%s\n",p->data.sex);
}
}
|