Thanks for your time.线性表问题。
描述线性表是n个元素的有序集合(n³0),n是线性表中元素的个数,称为线性表的长度。可以用一组地址连续的存储单元依次存储线性表中元素,采用这种存储方式的线性表称为顺序表。
请在顺序表上实现运算,实现顺序表的逆置,删除表中所有元素值等于x的元素。
输入
三组数据,顺序表元素类型分别为整型、字符型和实型。
每一组第一行给出元素数目n(0<n≤1000),第二行给出元素数值,第三行给出待删除的元素。
输出
三组数据,每一组第一行为逆置后的顺序表元素,第二行是在此基础上删除指定元素后的顺序表元素
样例输入
8
1 2 3 7 5 6 7 8
7
3
a c m
h
4
1.2 3.4 5.6 7.8
1.2
样例输出
8 7 6 5 7 3 2 1
8 6 5 3 2 1
m c a
m c a
7.8 5.6 3.4 1.2
7.8 5.6 3.4
自己写的:
#include <stdio.h>
int main()
{
int a,a1,b,b1,c,c1,flag1=0,flag2=0,flag3=0;
int aa[100]={0},aa1[100]={0},temp1,aadel;
char bb[100]={0},bb1[100]={0},temp2,bbdel;
double cc[100]={0},cc1[100]={0},temp3,ccdel;
int i,j;
while (scanf("%d",&a)==1) //整型处理
{
for (i=0;i<a;i++)
{
scanf("%d",&aa[i]);
}
scanf("%d",&aadel);
break;
}
for (i=0;i<a/2;i++)
{
temp1=aa[i];
aa[i]=aa[a-i-1];
aa[a-i-1]=temp1;
}
for (i=0;i<a;i++)
{
aa1[i]=aa[i];
}
a1=a;
for (i=0;i<a;i++)
{
if (aa[i]==aadel)
{
flag1=1;
for (j=i;j<a;j++)
{
aa[j]=aa[j+1];
}
a--;
}
else
{
flag1=0;
}
if (flag1==1)
{
i--;
}
}
while (scanf("%d",&b)==1) // 字符型处理
{
getchar();
for (i=0;i<b;i++)
{
scanf("%c",&bb[i]);
getchar();
}
scanf("%c",&bbdel);
break;
}
for (i=0;i<b/2;i++)
{
temp2=bb[i];
bb[i]=bb[b-i-1];
bb[b-i-1]=temp2;
}
for (i=0;i<b;i++)
{
bb1[i]=bb[i];
}
b1=b;
for (i=0;i<b;i++)
{
if (bb[i]==bbdel)
{
flag2=1;
for (j=i;j<b;j++)
{
bb[j]=bb[j+1];
}
b--;
}
else
{
flag2=0;
}
if (flag2==1)
{
i--;
}
}
while (scanf("%d",&c)==1) //实型处理
{
for (i=0;i<c;i++)
{
scanf("%lf",&cc[i]);
}
getchar();
scanf("%lf",&ccdel);
break;
}
for (i=0;i<c/2;i++)
{
temp3=cc[i];
cc[i]=cc[c-i-1];
cc[c-i-1]=temp3;
}
for (i=0;i<c;i++)
{
cc1[i]=cc[i];
}
c1=c;
for (i=0;i<c;i++)
{
if (cc[i]==ccdel)
{
flag3=1;
for (j=i;j<c;j++)
{
cc[j]=cc[j+1];
}
c--;
}
else
{
flag3=0;
}
if (flag3==1)
{
i--;
}
}
for (i=0;i<a1;i++) //输出
{
printf("%d ",aa1[i]);
}
putchar('\n');
for (i=0;i<a;i++)
{
printf("%d ",aa[i]);
}
putchar('\n');
for (i=0;i<b1;i++)
{
printf("%c",bb1[i]);
putchar(' ');
}
putchar('\n');
for (i=0;i<b;i++)
{
printf("%c",bb[i]);
putchar(' ');
}
putchar('\n');
for (i=0;i<c1;i++)
{
printf("%g ",cc1[i]);
}
putchar('\n');
for (i=0;i<c;i++)
{
printf("%g ",cc[i]);
}
putchar('\n');
return 0;
}
没怎么学过数据库,不知线性表操作和数组操作会不会有出入啊,系统评判为错误。thanks for your time!