鱼C论坛

 找回密码
 立即注册
查看: 2140|回复: 7

这里的L要怎么初始化啊?

[复制链接]
发表于 2023-1-7 11:03:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

typedef int ElemType;//顺序表中的元素类型
#define InitSize 100
//动态分配内存空间
typedef struct {
        ElemType * data;
int MaxSize;//动态数组的最大容量
int length;//顺序表中的元素个数
}SeqList;
//插入函数,i代表插入的位置,从1开始,e要插入的元素
bool ListInsert(SeqList& L, int i, ElemType e) {
        if (i <= 1 || i > L.length + 1)
        return false;
        if (L.length >= InitSize)//元素存满了
                return false;
        for (int j = L.length; j >= i; j--) {//移动顺序表中的元素
                L.data[j] = L.data[j - 1];
                L.data[i - 1] = e;//数组下标从零开始,插入第一个位置,访问的下标为0
                L.length++;
                return true;//走到这里代表插入成功,返回true
        }
}
//删除顺序表中i位置的元素
bool ListDelete(SeqList& L, int i) {
        if (i<1 || i>L.length)//判断删除的位置是否合法
                return false;
        if (L.length == 0)//顺序表中没有元素则无需删除
                return false;
        for (int j = i; j < L.length; j++)//从i位置依次把元素往前覆盖
                L.data[j - 1] = L.data[j];
        L.length--;//删除一个元素,顺序表的长度就减1
        return true;
}
//打印顺序表中的元素
void PrintList(SeqList& L) {
        for (int i = 0; i <L.length; i++){
                printf("%3d", L.data[i]);//要求所有的元素打印到一排
        }
        printf("\n");
}

int main(void) {
        SeqList L;//顺序表的名称
        L.data[0] = 1;
        L.data[1] = 2;
        L.data[2] = 3;
        L.length = 3;
        bool ret;
        ElemType Cr;
        printf("请输入想插入的元素值:\n");
        scanf("%d", &Cr);
        ret = ListInsert(L, 2, Cr);
        if (ret)
        {
                printf("插入成功\n");
                PrintList(L);//打印成功后的顺序表
        }
        else
        {
                printf("插入失败");
        }
        int i;//要删除的元素的位置
        printf("请输入要删除的位置:");
        scanf("%d", &i);
        ret = ListDelete(L, i);
        if (ret)
        {
                printf("删除成功\n");
                PrintList(L);
        }
        else
        {
                printf("删除失败\n");
        }

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-7 11:41:44 | 显示全部楼层
我竟然看不出这是C语言还是C++
兄弟你学的是C语言还是C++ ?
虽然说C语言和C++可以混合编程,但也不是你这么混合的呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 11:56:48 | 显示全部楼层
人造人 发表于 2023-1-7 11:41
我竟然看不出这是C语言还是C++
兄弟你学的是C语言还是C++ ?
虽然说C语言和C++可以混合编程,但也不是你 ...

文件的格式使用的C++
我看的是严蔚敏老师数据结构,因为我是刚学不久,所以不知道是怎么回事。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 11:59:27 | 显示全部楼层
就是在顺序表的初始化哪里出现了问题
书上面是伪代码,我也不清楚自己的问题出在了哪里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-7 12:02:19 | 显示全部楼层
把编译器警告打开

1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 12:05:10 | 显示全部楼层
人造人 发表于 2023-1-7 12:02
把编译器警告打开

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4700        使用了未初始化的局部变量“L”        课时10        E:\Microsoft Visual Studio\Project\作业\课时8\课时10\main.cpp        47       
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 12:06:01 | 显示全部楼层
阿布布 发表于 2023-1-7 12:05
严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4700        使用了未初始化的局部变量“L”        课时10        E:\Mic ...

报错是这样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-7 12:15:51 | 显示全部楼层
本帖最后由 ExiaGN001 于 2023-1-7 12:25 编辑

解决步骤(一家之言):
1、将头文件改为C++格式,并引用namespace std;
例:stdio.h->cstdio ;stdlib.h->cstdlib;
#include<cstdio>
#include<cstdlib>
using namespace std;
#define _CRT_SECURE_NO_WARNINGS

2、把SeqList的定义改成这样:
typedef struct  seqlist{
        ElemType * data;
        int MaxSize;//动态数组的最大容量
        int length;//顺序表中的元素个数
        seqlist()
        {
                data=(ElemType*) malloc(InitSize);
                MaxSize=InItSize;
                length=0;
        }
        ~seqlist()
        {
                free(data);
        }
}SeqList;


3、按照标准,将main函数声明改为 int main(),并在最后追加 return 0;


如果有用请设置最佳,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-20 23:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表