葡萄月令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日

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100