#include <stdio.h>
#include<stdlib.h>
#include
#include <string.h>
using namespace std;
#define MAXSIZE 100
#define OVERFLOW 0
#define OK 1
//创建结构体
typedef struct{
int *elem;
int length;
}SqList;
//顺序表的初始化
int InitList(SqList &L){
L.elem=new int[MAXSIZE];
if(!L.elem) exit(OVERFLOW);
L.length=0;
return OK;
};
//顺序表的输入
void input(SqList &L) {
int n=0;
printf("请输入你要输入的数据个数:\n");
scanf("%d",&n);
if(n>0){
printf("请输入你要输入的数据:\n");
for(int i=0;i<n;i++){
scanf("%d",&L.elem[i]);
}
}
}
//顺序表的输出
void output(SqList &L){
if(L.length=0){
printf("顺序表中无数据\n");
}else{
for(int i=0;i<L.length;i++){
int a=0;
a=L.elem[i];
printf("%d",a);
}
}
}
//顺序表的取值
void getElem(SqList&L){
int i=0;
printf("请输入你要查找的数据的位置序号\n");
scanf("%d",&i);
if(i<1||i>L.length){
printf("你要查找的数据不存在\n");
}else{
int a=0;
a=L.elem[i-1];
printf("%d",a);
}
}
//顺序表的查找
void LocateElem(SqList&L) {
int a=0;
printf("请输入你要查找的数据\n");
scanf("%d",&a);
for(int i=0;i<L.length;i++){
if(L.elem[i]==a) {
printf("你的数据在第%d个",i+1);
}else{
printf("你查找的数据不存在");
}
}
}
void menu(){
printf("1.创建顺序表\n");
printf("2.顺序表的输出\n");
printf("3.顺序表的取值 \n");
printf("4.顺序表的查找\n");
}
int main(){
menu();
SqList L;
printf("%d\n",L.length);
while (1){
printf("请输入你要执行的操作:\n");
int choice=0;
scanf("%d",&choice);
switch(choice){
case 1:input(L);break;
case 2:output(L);break;
case 3:getElem(L);break;
case 4:LocateElem(L);break;
default:printf("输入错误");break;
}
}
}
编译没错,运行输入第二个数会直接退出,调试会报错Program received signal SIGSEGV,Segmentation fault.明明初始化了,为什么顺序表的长度是1。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
悬赏问题
- ¥15 宇视监控服务器无法登录
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥15 DruidDataSource一直closing
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据