struct student {
char name[100];//名字
char sex[10];//性别
int age;//年龄
float A;//平时分
float B;//考试分
float C;//总分(A0.5+b0.5)
struct student * pNext;//指针域
};
这个是定义的一个结构体
struct student * pHead=NULL; //初始化头指针
pHead = create_list(); //create_list()功能:创建一个非循环单链表,并将该链表的头结点的地址付给pHead
进入函数
struct student * create_list(void){
char name[100];//名字
char sex[10];//性别
struct student * pHead = (struct student *)malloc(sizeof(struct student));// 给头指针分配头结点
下面是赋值的手段(虽然赋值数组不行,但对int/float这些数字类型就能成功赋值)
for (i=0; i
printf("请输入第%d个学生信息\n",i+1);
printf("名字:\n");
scanf("%s",&name[i]);
ah=getchar();
printf("性别(男/女):\n");
scanf("%s",&sex[i]);
}
struct student * pNew = (struct student *)malloc(sizeof(struct student)); //创造一个新空间,pNew指向它
pNew->name[100]= name[i]; pNew->sex[10] =sex[i];
这种情况输出是很奇怪的字
pNew->name[100]= name[i]; pNew->sex[10] =sex[i];是不对的,要用字符串复制
strcpy(pNew->name,name);
strcpy(pNew->sex,sex);
==========
输入语句也是错的,改为
for (i=0; i<ret; ++i)
{
printf("请输入第%d个学生信息\n",i+1);
printf("名字:\n");
scanf("%s",name);
ah=getchar();
printf("性别(男/女):\n");
scanf("%s",sex);
}