m0_74942956 2023-04-14 18:53 采纳率: 100%
浏览 27
已结题

关于数据结构顺序表的删除

img


#include<stdio.h> 
#define MAXSIZE 10


typedef struct {
    int elem[MAXSIZE];
    int length;
}sqlist;
void listdelete(sqlist &l,int i){
    for(int j=i;j<l.length;j++){
        l.elem[j-1]=l.elem[j];
        printf("111\n");
    }
    l.length--;
    
    
}
int main(){
    sqlist l;
    int n;
    l.length=n;
    scanf("%d",&n) ;
    for(int i=0;i<n;i++){
        scanf("%d",&l.elem[i]);
    }
    int i;
    scanf("%d",&i);
    
    printf("Before:(%d",l.elem[0]);
    for(int i=1;i<n;i++){
        printf(",%d",l.elem[i]);
        
    }
    printf(")\n");
    if(i<1||i>l.length){
        printf("Delete position error!");
    }
    else{
        listdelete(l,i);
        printf("After:(%d",l.elem[0]);
        for(int j=1;j<l.length;j++){
            printf(",%d",l.elem[j]);
        }
        printf(")");
    }return 0;
}

img


为什么第3个数明明在范围内,为什么输出不正确

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2023-04-14 19:46
    关注

    修改如下,改动处见注释,供参考:

    #include<stdio.h>
    #define MAXSIZE 10
    
    typedef struct {
        int elem[MAXSIZE];
        int length;
    }sqlist;
    
    void listdelete(sqlist &l,int i){
        for(int j=i;j<l.length;j++){
            l.elem[j-1]=l.elem[j];
            printf("111\n");
        }
        l.length--;
    }
    
    int main(){
        sqlist l;
        int n;
        //l.length=n;    移动到 n 输入语句后
        scanf("%d",&n) ;
        l.length=n;      //此句移动到这里
        for(int i=0;i<n;i++){
            scanf("%d",&l.elem[i]);
        }
        int i;
        scanf("%d",&i);
    
        printf("Before:(%d",l.elem[0]);
        for(int i=1;i<l.length;i++){ // for(int i=1;i<n;i++)
            printf(",%d",l.elem[i]);
        }
        printf(")\n");
    
        if(i<1||i>l.length){
            printf("Delete position error!");
        }
        else{
            listdelete(l,i);
            printf("After:(%d",l.elem[0]);
            for(int j=1;j<l.length;j++){
                printf(",%d",l.elem[j]);
            }
            printf(")");
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月22日
  • 已采纳回答 4月14日
  • 创建了问题 4月14日

悬赏问题

  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表