关于数据结构,微信转给

输入10个元素存入数组中,删除第i个元素后输出,其中,i为下标,由键盘输入。


#include <stdio.h>
int main(void)
{int a[10];
int i,j,m;
scanf("%d",&i);
for (j=i-1;j<10;i++)
{
a[j]=a[j+];
m=i;
}
a[m]='/0';
for (int k=0;k<10;k++)
{
printf("%d",a[k])
}
}
#include <stdio.h>
int main()
{
      int a[100],i,n,cnt=10;
      for(n=0;n<cnt;n++)
          scanf("%d",&a[n];
      scanf("%d",&i);
      if(i>=0 && i<cnt)
      {
            for(n=i;n<cnt-1;n++)
                a[n] = a[n+1];
            cnt--;
      }
      for(n=0;n<cnt;n++)
          printf("%d ",a[n];
      return 0;
}

代码如下:

#include <stdio.h>

struct LinkList 
{
    int arr[20];
    int length;
};

//创建链表
void CreateList(struct LinkList *lst)
{
    int i,n;
    lst->length = 0;
    printf("请输入10个元素存入数组中");
    for (i=0;i<10;i++)
    {
        scanf("%d",&n);
        lst->arr[lst->length] = n;
        lst->length++;
    }
}
//从链表中删除元素(i是下标,从0开始)
void DeleteEle(struct LinkList *lst,int i)
{
    int j;
    if(i>= lst->length)
        printf("下标太大,数组中这个位置没有数据");
    else
    {
        for(j = i;j<lst->length -1;j++)
            lst->arr[j] = lst->arr[j+1];

        lst->length--;//长度减1
    }
}

//显示列表
void print(struct LinkList *lst)
{
    int i;
    printf("链表当前元素为:");
    for (i=0;i<lst->length;i++)
    {
        if(i<lst->length-1)
            printf("%d ",lst->arr[i]);
        else
            printf("%d\n",lst->arr[i]);
    }
}


int main()
{
    struct LinkList lst;
    int i;
    CreateList(&lst);
    print(&lst);
    printf("请输入要删除的元素下标(最小是0):");
    scanf("%d",&i);
    DeleteEle(&lst,i);
    print(&lst);
    return 0;
}