᥇ꪶꪮ᭙ .778 2021-09-16 16:36 采纳率: 100%
浏览 32
已结题

顺序表的插入,我老是输出error,得不到结果,不知道为什么

#include<stdio.h>
#define MaxSize 100

typedef int ElemType;

typedef struct
{
int t[MaxSize];
int length;
}sqlist;

int InterList(sqlist*L,int i,int x ) {
int j;
if (i < 0 || i > L->length+1) {
return (0);
}
for( j=L->length;j >i; j--)//i指插入点
{
L->t[i]=x;
L->length++;
}
return 1;

}
int DeleteElem(sqlist* L,int i,int e) {
if (i<1 || i>L->length + 1) {
return (0);
}
int j;
i--;//把i逻辑顺序换算成物理顺序
e = L->t[i];
for (j = i; j < L->length; i++) {
L->t[j] = L->t[j + 1];

}
 L->length++;
 return 1;

}

int main() {
int b, c, k = 0;
int d;//==插入点
sqlist a;
char Y;
int z = 1;
while (z)
{
printf("输出元素否:y/n\n");
scanf_s("%c", &Y);
if (Y == 'y') {
printf("输入元素%d\n", k + 1);
scanf_s("%d", &a.t[k]);
k++;
}

    else
    {
        z = 0;
        a.length = k;
    }
       

}
printf("请输入插入前元素:\n");

for (k=0;k<a.length;k++)
{
    printf("%d\t", a.t[k]);
}
printf("请输入插入位置元素\n");
scanf_s("%d", &d);
printf("请输入插入元素\n");
scanf_s("%d",&b);
c = InterList(&a,d,b);
if (c==0)
{
    printf("error!\n");
}
else
{    printf("请输入插入后的元素\n");
    for (k = 0; k < a.length; k++) {
        printf("%d\t",a.t[k]);
    }
}

return 0;

}

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2021-09-16 16:51
    关注

    你这个d输入的是多少?输出error,说明插入函数返回0,返回0只有i输入的值是错误情况才发生

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月24日
  • 已采纳回答 9月16日
  • 创建了问题 9月16日

悬赏问题

  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面