问题描述
- 设有一个顺序表A,包含n个元素,要求写出一个将该表逆置的算法,
-
#include
#define MaxLen 50
typedef int elemtype;
typedef elemtype sqlist [MaxLen];
int create (sqlist A)
{
int i,n;
printf(“创建一个顺序表n”);
printf(“输入元素个数:”);
scanf( );
for (i=0;i<n;i++)
{
printf(“输入第%d个元素值:”,i+1);
scanf(“%d”, );
}
return n;
}void invert(sqlist A,int n)
{
int m=n/2,i;
elemtype temp;
for (i=0;i<m;i++)
{
temp=A[i];
A[i]=A[ ];
A[ ]=temp;/*交换*/
}
}
void disp(sqlist A, int n)
{int i;
for(i=0;i<n;i++)
printf(“%d ”,A[i]);
printf(“n”);
}
void main()
{
sqlist A;
int n;
n=create(A);
disp(A,n);
invert(A,n);
disp(A,n);
}
解决方案
你的程序中错误百出,而且好多全角符号,根本就是你的老师胡乱在word之类的软件中瞎编的。
解决方案二:
代码调整好了,上面的人说的对,你太不认真负责了,认认真真学习过也是一种美好的回忆,毕竟线性表是数据结构开始最简单的,而且是基础。
#include <stdio.h>
#define MaxLen 50
typedef int elemtype;
typedef elemtype sqlist[MaxLen];
int create (sqlist A)
{
int i,n;
printf("创建一个顺序表n");
printf("输入元素个数:");
scanf("%d", &n);
for (i=0;i<n;i++)
{
printf("输入第%d个元素值:", i+1);
scanf("%d", &A[i]);
}
return n;
}
void invert(sqlist A,int n)
{
int m=n/2,i;
elemtype temp;
for (i=0;i<m;i++)
{
temp=A[i];
A[i]=A[n-i-1];
A[n-i-1]=temp;/*交换*/
}
}
void disp(sqlist A, int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d", A[i]);
}
printf("n");
}
void main()
{
sqlist A;
int n;
n = create(A);
disp(A, n);
invert(A, n);
disp(A, n);
}
时间: 2024-10-31 14:49:02