鱼C论坛

 找回密码
 立即注册
查看: 3294|回复: 2

[已解决]为什么定义一个顺序表就能正常运行?定义两个就输入一个数据就退出了。跪求大佬帮忙

[复制链接]
发表于 2021-3-8 18:49:21 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
#define MaxLen 100
typedef int DataType;
typedef struct
{
        DataType data[MaxLen];
        int length;
}SeqList;
void InitList(SeqList *L);
void AddList(SeqList *L);
void PrintfList(SeqList L);
void GetLength(SeqList L);
DataType GetNode(SeqList L,int i);
int Locate(SeqList L,DataType e);
void InsertList(SeqList *L,int i,DataType e);
void DeleteList(SeqList *L,int i);
int main()
{
        SeqList A;
        SeqList B;
//        int i;
//        DataType x;
        InitList(&A);
        AddList(&A);
        PrintfList(A);
        InitList(&B);
        AddList(&B);
        PrintfList(B);
//        GetLength(L);
//        i=Locate(L,100);
//        x=GetNode(L,5);
//        if(x!=-1)
//        {
//                printf("第五个数据元素的值为%d\n",x);
//        }
//        if(i)
//        {
//                printf("100是序号为%d的数据元素的值\n",i);
//        }
//        else
//        {
//                printf("元素的值等于100的数据不存在\n");
//        }
//        InsertList(&L,4,100);
//        PrintfList(L);
//        DeleteList(&L,5);
//        PrintfList(L);
        return 0;
}
void InitList(SeqList *L)
{
        L->length==0;
        return;
}
void AddList(SeqList *L)
{
        int x;
        char ch;
        do
        {
                if(L->length==MaxLen)
        {
                printf("顺序表已满。\n");
                return;
        }
        printf("请输入存放到顺序表中的数据元素的值\n");
        scanf("%d",&x);
        getchar();
        L->data[L->length++]=x;
        printf("是否继续输入数据元素的值(Y/N)\n");
        scanf("%c",&ch);
        getchar();
        }
        while(ch=='Y'||ch=='y');
}
void PrintfList(SeqList L)
{
        int i;
        for(i=0;i<L.length;i++)
        {
                printf("(%d)%d\t\n",i+1,L.data[i]);
        }
        return;
}
void GetLength(SeqList L)
{
        printf("%d",L.length);
        return;
}
DataType GetNode(SeqList L,int i)
{
        if(i<1||i>L.length+1)
        {
                printf("所查找的数据不存在\n");
                return -1;
        }
        return L.data[i-1];
}
int Locate(SeqList L,DataType e)
{
        int i;
        for(i=0;i<L.length;i++)
        {
                if(L.data[i]==e)
                {
                        return i+1;
                        i++;
                }
        }
        return 0;
}
void InsertList(SeqList *L,int i,DataType e)
{
        int j;
        if(L->length==MaxLen)
        {
                printf("顺序表已满!");
                return;
        }
        if(i<1||i>L->length+1)
        {
                printf("插入位置错误");
                return;
        }
        for(j=L->length;j>=i;j--)
        {
                L->data[j+1]=L->data[j];
        }
        L->data[i-1]=e;
        L->length++;
        return;
}
void DeleteList(SeqList *L,int i)
{
        int j;
        if(i<1||i>L->length)
        {
                printf("位置错误!");
        }
        for(j=i;j<L->length;j++)
        {
                L->data[j-1]=L->data[j];
        }
        L->length--;
        return;
}
最佳答案
2021-3-8 19:57:05
  1. void InitList(SeqList *L)
  2. {
  3.         L->length=0; // 两个双等号?
  4.         return;
  5. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-8 19:57:05 | 显示全部楼层    本楼为最佳答案   
  1. void InitList(SeqList *L)
  2. {
  3.         L->length=0; // 两个双等号?
  4.         return;
  5. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-8 20:47:02 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 21:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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