orime458 2021-10-11 19:37 采纳率: 0%
浏览 15

问一下为什么LocateList里运行到L->length或L->data程序就会结束

顺序表的操作,代码还未完成,卡在这一步了,在CreateList以外使用L->data就会导致程序结束

代码如下:

#include<stdio.h>
#include<stdlib.h>
/*顺序表的定义:*/
#define ListSize 100        /*表空间大小可根据实际需要而定,这里假设为100*/
typedef int DataType;        /*DataType可以是任何相应的数据类型如int, float或char*/
typedef struct
{    DataType data[ListSize];    /*向量data用于存放表结点*/
    int length;                /*当前的表长度*/
}SeqList;

/*函数的声明*/
void CreateList(SeqList * L,int n)
{
    L=(SeqList*)malloc(ListSize*sizeof(int));
    printf("要输入的元素:");
    for(int i=0;i<n;i++)
    {
        int p;
        scanf("%d",&p);
        L->data[i]=p;
    }
    printf("顺序表创建成功:");
    L->length=n-1;
    for(int j=0;j<n;j++)
    {
        printf("%d ",L->data[j]);
    }
    printf("\n");
}  /*创建顺序表函数*/
int LocateList(SeqList *L,DataType x)
{
    int i,j;
    for(i=0;i<L->length;i++)
    {
        if(L->data[i]==x){
            printf("位于结点:");
    return i+1;}
    }
}  /*查找顺序表*/
void InsertList(SeqList * L,DataType x,int i); /*在顺序表中插入结点x*/
void DeleteList(SeqList * L,int i);/*在顺序表中删除第i个结点*/
void PrintList(SeqList L,int n); /*打印顺序表中前n个结点*/

int main() {
    SeqList* L;
    int i,j,k,m,n,x;
    printf("要输入的元素个数:");
    scanf("%d",&n);
    CreateList( L, n);
    printf("要查找的元素:");
    scanf("%d",&x);
    printf("\n");
    LocateList(L, x);
    return 0;
}

  • 写回答

1条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 创建了问题 10月11日

      悬赏问题

      • ¥15 下载CSGO服务端时出错
      • ¥20 esp8266知心天气blinker上面显示
      • ¥20 python代码的实现讲解
      • ¥20 python代码实现,讲解
      • ¥30 六足机器人硬件配置问题
      • ¥15 uniapp ios端配置universal link无法唤起app
      • ¥70 java通过ISUP SDK开发连接海康威视获取PS封装流如何推送到web页面
      • ¥15 并且拖拽过去在picturebox上的数据也可以实现拖拽换位置的功能,
      • ¥15 AndroidStudio:fragment里的content怎么写?
      • ¥30 关于#vba数组#的问题,如何解决?