葡萄月令978 2023-03-08 20:17 采纳率: 66.7%
浏览 16
已结题

顺序表插入元素结果结果不对



#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<sys/malloc.h>
#define MaxSize 50
#define INITSIZE 100
#define OVERFLOW -1
using namespace std;
typedef int ElemType;
typedef struct
{
    ElemType *data; //存放元素基地址
    int length;
}sqlist;

//初始化线性表
void InitList(sqlist &L)
{
    L.data=new ElemType[MaxSize];
    L.length=0;
}

//顺序表的取值
void CreateList(sqlist &L)
{
    int i,N;
    cout<<"请输入顺序表中元素的个数:";
    cin>>N;
    cout<<"请输入顺序表中的元素:";
    for(i=0;i<N;i++)
    {
        cin>>L.data[i];
        L.length++;
    }
    
}
// 输出线性表
void DispList(sqlist &L)
{
    int i;
    for(i=0;i<L.length;i++)
        printf("%d ",L.data[i]);
    printf("\n");
}
//查找最大元素
int MaxList(sqlist &L)
{
    int max,t;
    int i=0;
    for(max=L.data[i];i<L.length;i++)
    {
        if(L.data[i]>max)
        {
            t=L.data[i];
            L.data[i]=max;
            max=t;
        }
    }
    return max;
}
 
 

bool ListInsert(sqlist &L, int i, ElemType e)
{
    int j;
    if (i<1 || i> L.length+1)
    return false;
    i--;
    for (j=L.length; j>i; j--)
        L.data[j]=L.data[j-1];
    L.data[i]=e;
    L.length++;
    return true;}


int main()
{
    int i;
    ElemType num1;
    sqlist L;
    InitList(L);
    CreateList(L);
    printf("该顺序表为:");
    DispList(L);
    printf("最大的元素是:%d\n",MaxList(L));
    printf("您想在哪个位置插入元素:");
    scanf("%d",&i);
    printf("您想插入什么元素:");
    scanf("%d",&num1);
    ListInsert(L,i,num1);
    DispList(L);

    return 0;
}

img


如图,顺序表中插入元素怎么做也不对,不知道怎么改了

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2023-03-08 20:23
    关注

    插入一个4,也不至于变化这么大吧
    你的MaxList函数为啥要修改顺序表元素的位置呢???只是查找最大值而已,干嘛要写数据交换?这完全打乱了顺序表的值啊

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?