我逐渐不理解一切 2021-06-04 19:34 采纳率: 100%
浏览 5685
已采纳

表达式必须包含指向对象的指针类型,但它具有类型 "int"

#include<stdio.h>

#include<stdlib.h>

#include<malloc.h>

#define maxsize 999

typedef struct List

{

    int Data[maxsize];

    int length;

}P;

 

void Initialization(P *L)// 初始化顺序表 

{

    

    L->length=0;

}

 

int Createlist(P *L)//  创建顺序表 

{

    int n;

    int k;

    printf("输入所需顺序表的长度:");

    scanf("%d",&n);

    int a[n];

    for (k = 0; k < n; k++)

    {

        printf("请输入第%d个位置的值: ",k);

        scanf("%d",&a[k]);

        L->length[k] = a[k];

    }

 

        L->length = n;

}

 

void Printflist(P *L)//  遍历顺序表 

{

    for(int i=0;i<L->length;i++)

    {

        printf("%d ",(L->Data[i]));

    }

}

 

int insert(P *L,int i,int val)// *增:在特定位置插入特定值

{

    if(L->length==maxsize)

    {

        printf("存储空间已满!\n");

        return 0;

    }

    for(int j=L->length-1;j>=i-1;j--)

    {

        L->Data[j+1]=L->Data[j];//  顺序表长度增加一位后,将原来第i位置后的每一位元素向后移一位 

    }

    L->Data[i-1]=val;

    L->length++;//  顺序表长度增加1 

    return 1;

 } 

 

 int del(P *L,int i,int *val)//  *删:删除特定位置的值

 {

    *val=L->Data[i-1];//  将要删除的值存放在该指针中 

    for(int j=i;j<=L->length-1;j++)

    {

        L->Data[j-1]=L->Data[j];//  顺序表长度减少一位后,将原来第i位置后的每一位元素向前移一位 

     }

     L->length--;//  顺序表长度减少1 

  } 

  

  int seek(P *L,int i,int *val)//  *查:查询特定位置的值 

  {

    *val=L->Data[i-1];//  将要查询的值存放在该指针中 

  }

  

  int change(P *L,int i,int x,int *val)//  *改:在特定位置更改所需值 

  {

    *val=L->Data[i-1];//  将所改值存放在该指针中 

    L->Data[i-1]=x;

  }

  

  int main()

  {

    

    P *list;

    int val1;

    int val2;

    int val3;

      //Initialization(list);

      Createlist(list);

      {

        printf("创建的顺序表为:\n");

      }

      Printflist(list);

      seek(list,1,&val1);

      {

        printf("\n查找的值为: %d",val1);

       } 

      insert(list,1,100);

      {

        printf("\n插入所需值后的顺序表为:\n");

      }

      Printflist(list);

      del(list,2,&val2);

      {

        printf("\n删除的值为:%d,删除后的顺序表为:\n",val2);

      }

      Printflist(list);

      change(list,3,77,&val3);

      {

        printf("\n改变的值为:%d,改变后的顺序表为:\n",val3);

      }

      Printflist(list);

      return 0;

   } 

新手写的顺序表,但是创建部分出现的问题不知道怎么解决,求救~~~

  • 写回答

2条回答 默认 最新

  • CSDN专家-Time 2021-06-04 19:41
    关注

       int a[n]; 不可以这么定义c++的数组

    int Createlist(P* L)//  创建顺序表 
    
    {
        int n;
    
        int k;
    
        printf("输入所需顺序表的长度:");
    
        scanf("%d", &n);
    
        int a[1000];
    
        for (k = 0; k < n; k++)
    
        {
            printf("请输入第%d个位置的值: ", k);
    
            scanf("%d", &a[k]);
    
            L->length = a[k];
    
        }
    
    
    
        L->length = n;
    
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 (标签-python)
  • ¥15 第一个已完成,求第二个做法
  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
  • ¥15 activiti工作流问题,求解答
  • ¥15 有人写过RPA后台管理系统么?
  • ¥15 Bioage计算生物学年龄
  • ¥20 如何将FPGA Alveo U50恢复原来出厂设置哇?
  • ¥50 cocos2d-x lua 在mac上接入lua protobuf?
  • ¥15 es 7.17.20版本生成时间戳