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条回答 默认 最新

  • 2201_75434388 2023-02-07 10:48
    关注

    LocateList 函数未返回任何值,如果没有找到给定的 x 值,LocateList 就会返回一个未定义的值。

    为避免这个问题,在 LocateList 函数中可以将没有找到给定 x 值的情况加以判断,并返回一个特殊的值(例如 -1)以表示没有找到。例如:

    int LocateList(SeqList *L,DataType x)
    {
    int i;
    for(i=0;ilength;i++)
    {
    if(L->data[i]==x){
    printf("位于结点:");
    return i+1;
    }
    }
    return -1;
    }

    评论

报告相同问题?

问题事件

  • 创建了问题 10月11日

悬赏问题

  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区