回 帖 发 新 帖 刷新版面

主题:输入一个线性表,按要求对其进行一些简单操作,输出结果。

输入
第一行表示线性表的初始状态,第一个整数n(n<=1000)表示线性表的元素个数,后面还n个整数依次为线性表中的各个元素。 从第二行开始,为对这个线性表操作的一些指令,有remove、insert、display、length四种: remove i表示删除线性表第i个位置上的元素,insert i x表示在第i个位置上插入x,display i表示输出第i个位置上的值,length表示输出整个线性表的元素个数。线性表的元素位置从0开始编号。操作过程中,线性表的长度不会超过1000个元素。 
输出
遇到display i命令时,输出对应位置上的元素的值,并换行;遇到length命令时,输出元素个数,并换行;其他命令不产生输出。 
输入样例
9 1 2 3 4 5 6 7 8 9
display 5
insert 5 10
display 5
delete 6
display 6
length

输出样例
6
10
7
9

谁会写代码救救兄弟我啊!!!!!!!!!!!111[em1][em1][em1][em1]

回复列表 (共2个回复)

沙发

就没有一个高手会吗???????????????????

板凳

者有一段代码,里面有提示输入的语句,如果你不想要的话可以删除。下面一段代码仅供参考:
#include <stdio.h>
#include <stdlib.h>
#define NULL 0
#define Maxsize 1000
typedef int datatype;
typedef struct
{
  datatype data[Maxsize];
  int last;
}sqlist;
void Insert(sqlist *L,datatype x,int i)
{
  int j;
  if(L->last>=Maxsize-1)
    printf("Overflow");
  else if(i<0||i>L->last+1)
    printf("error");
  else
  {
    for(j=L->last;j>=i;j--)
      L->data[j+1]=L->data[j];
    L->data[i]=x;
    L->last++;
  }
}
void Remove(sqlist *L,int i)
{
  int j;
  if(i<1||i>L->last+1)
    printf("error");
  else
  {
    for(j=i;j<=L->last;j++)
      L->data[j-1]=L->data[j];
    L->last--;
  }
}
void display(sqlist *L,int i)
{
  if(i<0)
    printf("Underflow!");
  else if(i>Maxsize-1)
    printf("Overflow!");
  else
    printf("%d\n",L->data[i]);
}
void Length(sqlist *L)
{
  printf("%d\n",(L->last)+1);
}
void main()
{
  sqlist L;
  int i,n;
  datatype x;
  clrscr();
  printf("Please input n:");
  scanf("%d",&n);
  L.last=n-1;
  for(i=0;i<n;i++)
    scanf("%d",&L.data[i]);
  printf("please input the order you want to dispaly:");
  scanf("%d",&i);
  display(&L,i);
  printf("Please input (i,x):");
  scanf("%d,%d",&i,&x);
  Insert(&L,x,i);
  display(&L,i);
  printf("Please input the order that you want to delete:");
  scanf("%d",&i);
  Remove(&L,i);
  display(&L,i);
  Length(&L);
  getch();
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册