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<ret; ++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];
这种情况输出是很奇怪的字
为什么给链表节点里的数组成员赋值不了呢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 快乐鹦鹉 2022-10-31 13:12关注
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);
}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 汇川EASY521plc电子凸轮
- ¥15 C++ 如何判断设置快捷键来实现隐藏/显示窗口
- ¥15 关于#材料工程#的问题:有没有具有电子阻挡层和空穴阻挡层的电池仿真silvaco代码例子或者其他器件具有阻挡层例子的silvaco代码(最好还有相关文献)
- ¥60 基于MATLAB的TAOD算法
- ¥15 Groimp使用疑问
- ¥15 MDK–ARM里一直找不到调试器
- ¥15 oracle中sql查询问题
- ¥15 vue使用gojs3.0版本,在nodeDataArray中的iconSrc使用gif本地路径,展示出来后动画是静态的,不是动态的
- ¥100 代写个MATLAB代码,有偿
- ¥15 ansys electronics 2021 R1安装报错,错误代码2,如图