线性表顺序存储这样写,运行结果为什么显示表元素会是空的,代码哪里有问题
5条回答 默认 最新
- dahe0825 2023-03-12 21:58关注
参考GPT和自己 的思路,在代码中,读取输入字符的语句使用了scanf("%c",&L->data[i]),但是输入时输入的字符带有回车符(\n),回车符也被读取到了字符数组中,导致读入字符的数目少于期望值。因此,输出时表中的元素都为空。
为解决这个问题,可以在读取字符前添加一个空格。
下面是BuildList函数修改后的代码:
void BuildList(SeqList *L) { int i; printf("ÈôÄãÊäÈëµÄÊý¾ÝΪ'0'ʱ£¬Ôò½áÊøÊäÈë\n"); for(i=0;i<100;i++) { printf("ÊäÈëÊý¾Ý:"); scanf(" %c",&L->data[i]); // 在这里添加了一个空格 if(L->data[i]=='0') break; L->last++; } if(i==99) printf("ÎÞ·¨¼ÌÐø´´½¨£¡\n"); printf("*************´´½¨³É¹¦£¡*************\n"); }
希望能帮你解决问题,还请采纳!!!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报