在VC6.0环境下用C语言编程
自己设计一个任意的顺序表并实现顺序表的应用程序。1、在原来的顺序表中将顺序表实现逆置。2、要求顺序表的内容由用户输入,并分别显示出逆置前和逆置后的顺序表。...
自己设计一个任意的顺序表并实现顺序表的应用程序。
1、在原来的顺序表中将顺序表实现逆置。
2、要求顺序表的内容由用户输入,并分别显示出逆置前和逆置后的顺序表。 展开
1、在原来的顺序表中将顺序表实现逆置。
2、要求顺序表的内容由用户输入,并分别显示出逆置前和逆置后的顺序表。 展开
2个回答
展开全部
#include <stdio.h>
#define MAX 10
typedef struct
{
int a[MAX];
int len;
}Seq;
Seq Insert(Seq s,int n)//插入
{
int i;
for(i=0;i<n;i++)
scanf("%d",&s.a[i]);
s.len=n;
return s;
}
Seq Rerver(Seq s)//逆置
{
int i,j,t;
for(i=0,j=s.len-1;i<j;i++,j--)
{
t=s.a[i];
s.a[i]=s.a[j];
s.a[j]=t;
}
return s;
}
void Print(Seq s)//打印
{
int i;
for(i=0;i<s.len;i++)
printf("%d ",s.a[i]);
printf("\n");
}
int main()
{
Seq s;
int n;
s.len=0;
printf("输入元素个数:");
scanf("%d",&n);
if(n<1)
{ printf("输入大于1的正数\n");return 1;}
if(n>=MAX)
{ printf("输入个数超过定义长度:%d\n",MAX);return 1;}
printf("输入数值:");
s=Insert(s,n);
printf("逆置前数据:\n");
Print(s);
s=Rerver(s);
printf("逆置后数据:\n");
Print(s);
return 0;
}
#define MAX 10
typedef struct
{
int a[MAX];
int len;
}Seq;
Seq Insert(Seq s,int n)//插入
{
int i;
for(i=0;i<n;i++)
scanf("%d",&s.a[i]);
s.len=n;
return s;
}
Seq Rerver(Seq s)//逆置
{
int i,j,t;
for(i=0,j=s.len-1;i<j;i++,j--)
{
t=s.a[i];
s.a[i]=s.a[j];
s.a[j]=t;
}
return s;
}
void Print(Seq s)//打印
{
int i;
for(i=0;i<s.len;i++)
printf("%d ",s.a[i]);
printf("\n");
}
int main()
{
Seq s;
int n;
s.len=0;
printf("输入元素个数:");
scanf("%d",&n);
if(n<1)
{ printf("输入大于1的正数\n");return 1;}
if(n>=MAX)
{ printf("输入个数超过定义长度:%d\n",MAX);return 1;}
printf("输入数值:");
s=Insert(s,n);
printf("逆置前数据:\n");
Print(s);
s=Rerver(s);
printf("逆置后数据:\n");
Print(s);
return 0;
}
展开全部
#include<stdio.h>
#include<malloc.h>
struct biao
{ int num;
struct biao *next;
};
void main()
{ int len=1,i;
struct biao *p1,*p2,*head,*nw,*nwhead;
p1=p2=head=(struct biao *)malloc(sizeof(struct biao));
printf("input number(0:list end):");
scanf("%d",&p1->num);
while(p1->num!=0)
{ p1=(struct biao *)malloc(sizeof(struct biao));
printf("input number(%d:list end):",len);
scanf("%d",&p1->num);
if(p1->num==0)
p2->next=NULL;
else
{ p2->next=p1;
p2=p1;
len++;
}
}
p1=head;
printf("\noringinal list:\n");
do
{ printf("%4d",p1->num);
if(p1->next!=NULL)
p1=p1->next;
} while(p1->next!=NULL);
printf("%4d",p1->num);
for(i=0;i<len;i++)
{p2=p1=head;
while(p1->next!=NULL)
{ p2=p1;
p1=p1->next;
}
if(i==0)
nwhead=nw=p1;
else
nw=nw->next=p1;
p2->next=NULL;
}
printf("\n\nnew list:\n");
p1=nwhead;
for(i=0;i<len;i++)
{ printf("%4d",p1->num);
p1=p1->next;
}
printf("\n");
}
#include<malloc.h>
struct biao
{ int num;
struct biao *next;
};
void main()
{ int len=1,i;
struct biao *p1,*p2,*head,*nw,*nwhead;
p1=p2=head=(struct biao *)malloc(sizeof(struct biao));
printf("input number(0:list end):");
scanf("%d",&p1->num);
while(p1->num!=0)
{ p1=(struct biao *)malloc(sizeof(struct biao));
printf("input number(%d:list end):",len);
scanf("%d",&p1->num);
if(p1->num==0)
p2->next=NULL;
else
{ p2->next=p1;
p2=p1;
len++;
}
}
p1=head;
printf("\noringinal list:\n");
do
{ printf("%4d",p1->num);
if(p1->next!=NULL)
p1=p1->next;
} while(p1->next!=NULL);
printf("%4d",p1->num);
for(i=0;i<len;i++)
{p2=p1=head;
while(p1->next!=NULL)
{ p2=p1;
p1=p1->next;
}
if(i==0)
nwhead=nw=p1;
else
nw=nw->next=p1;
p2->next=NULL;
}
printf("\n\nnew list:\n");
p1=nwhead;
for(i=0;i<len;i++)
{ printf("%4d",p1->num);
p1=p1->next;
}
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询