当前位置: 首页 > 知识库问答 >
问题:

c++ - 顺序存储,线性表的删除和插入中出现问题,未知代码哪里出错?

公孙宸
2023-09-17

需求:编制C/C++程序,利用顺序存储方式实现下列功能:从键盘输入数据建立一个线性表(整数),并输出该线性表;然后根据屏幕提示,进行数据的插入或删除等操作,并在插入或删除数据后输出线性表。
代码出现问题,无法运行,错误提醒是delete那块红了,估计是它出问题。
未知是什么原因,望指教。

typedef struct {int data[MAX_SIZE]; int length;        } SeqList;void init(SeqList *list) {list->length = 0;}void insert(SeqList *list, int position, int value) {if (position < 0 || position > list->length || list->length == MAX_SIZE) {printf("The insert position is invalid or the linear table is full:\n");    return;}for (int i = list->length - 1; i >= position; i--) {    list->data[i + 1] = list->data[i];}list->data[position] = value;list->length++;}void delete(SeqList *list, int position) {if (position < 0 || position >= list->length) {    printf("Invalid delete location:\n");    return;}for (int i = position; i < list->length - 1; i++) {    list->data[i] = list->data[i + 1];}list->length--;}void print(SeqList *list) {printf("Linear table contents:");for (int i = 0; i < list->length; i++) {    printf("%d ", list->data[i]);}printf("\n");}int main() {SeqList list;init(&list);printf("Please enter the length of the linear table:");scanf("%d", &list.length);if (list.length > MAX_SIZE) {    printf("The linear table length exceeds the maximum value:\n");    return 0;}printf("Enter the elements of the linear table:");for (int i = 0; i < list.length; i++) {    scanf("%d", &list.data[i]);}print(&list);int operation, position, value;printf("\nplese select:\n");    printf("1. insect the data:\n");printf("2. delete the data\n");printf("0. exit\n");while (1) {    printf("\nplease enter the ops:");    scanf("%d", &operation);    if (operation == 1) {        printf("Please enter insert position and insert value (separated by space):");        scanf("%d %d", &position, &value);        insert(&list, position, value);    } else if (operation == 2) {        printf("Please enter the deletion location:");        scanf("%d", &position);        delete(&list, position);    } else if (operation == 0) {        break;    } else {        printf("Invalid operation number:\n");    }    print(&list);}return 0;}

顺便提问一句我的DEVC++底下变成这样,应该怎么恢复到初始可以看见报错原因的状态?
image.png
菜鸟上路,万分感谢指教。

共有1个答案

辛麻雀
2023-09-17

您可以通过在代码编辑器中点击编辑菜单,然后选择清除和重构代码来清除当前的错误。然后重新运行程序,应该就不会再出现红色删除符号了。

 类似资料:
  • 问题内容: 这段代码什么也没给我返回,您能帮我为什么不收回价值吗? 问题答案: 你是那个意思吗 还是真的是t1.wid = t2.wid?在这种情况下,您需要左联接。 编辑 好的,所以您已修复它。除非t2中有行的wid与t1中具有相同wid的行匹配的wid,否则不会显示任何结果。 如果需要结果,请将其更改为: 下一步编辑 如果目标是使用t2中尚未存在的t1中的值更新t2,则可能是这样的: 缺少的步

  • 本文向大家介绍C++实现顺序表的常用操作(插入删出查找输出),包括了C++实现顺序表的常用操作(插入删出查找输出)的使用技巧和注意事项,需要的朋友参考一下 实现顺序表的插入,删除,查找,输出操作在C语言中经常用到。下面小编给大家整理实现代码,一起看下吧 代码如下所示: 【Test_Sequence.cpp】 效果如下: 以上所述是小编给大家介绍的C++实现顺序表的常用操作(插入删出查找输出),希望

  • 问题内容: 这是我在SO提出的第一个问题。 我有我公司最近要维护的内部申请。这些应用程序是用PHP构建的,其编码(OO,DB Abstraction,Smarty)相当好,没有WTF的味道。 问题是应用程序 非常慢 。 如何找出导致应用程序速度下降的原因?我已经对代码进行了优化,以使数据库查询很少,因此我知道这是需要一段时间才能执行的PHP代码。我需要获得一些可以帮助我解决此问题的工具,并且需要制

  • 我的任务是创建函数来添加和删除链表中的节点,输入数据为int,字符为with函数调用。我不确定我做错了什么。我得到的唯一错误是:退出时返回代码为-11(SIGSEGV)。还有一个编译器方法:main。cpp:在函数“void listInsertValue(ListNode)”中* 感谢任何帮助。谢谢!

  • 我试图为双链表编写一个插入方法,当我将节点放入列表时,它是按字母顺序插入的。这个想法是,我将使用curnode遍历列表,如果newNode位于curnode之前,我将简单地将newNode放在curnode之前。到目前为止,我编写的代码用于将1个节点插入列表,但我在第二部分遇到了问题,这需要检查顺序和放置之前。我应该如何更改程序以使其正常工作?使用代码,我现在只插入1个元素(head)。

  • 我在删除订单时遇到问题: 这里是按取消删除订单的表单: 这是我的路由器: > OrderController:删除函数: 公共函数delete(Order$Order){try{unlink(public_path().'/storage/orders/files/'.$Order- 因此,当点击按钮(取消)时,只需转到正确的url:when 21是订单id 而且它只是找不到页面!!!没有删除任何