题目描述:
将一顺序表A中的元素逆置。例如原来顺序表A中的元素是100,90,80,70,60,50,40,逆置后为40,50,60,70,80,90,100。
思路分析:
将顺序表A中的元素输入数组a,若数组a中元素个数为n,将下标为0,1,2,…,(n-1)/2的元素依次与下标为n,n-1,…, (n-1)/2的元素交换,输出数组a的元素。
C语言代码实现:
//逆置
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,n;
int k,a[100]={0};//将数组全部初始化为0
printf("请输入元素个数n:\n");
scanf("%d",&n);
for(i=0;i<=n-1;i++)
{
printf("请输入数组元素:");
scanf("%d",&a[i]);
}
printf("逆置前数组中元素为:");
for(i=0;i<=n-1;i++)
printf("%d",a[i]);
printf("\n");//换行
for(i=0;i<=(n-1)/2;i++)
{k=a[i];//将数组中的第i位移出给k
a[i]=a[n-1-i];//将数组中的第(n-1-i)位移到第i位
a[n-1-i]=k;//把由k代表的a[i]移动到第(n-1-i)位
}
printf("逆置后数组中元素为:");
for(i=0;i<=n-1;i++)
printf("%d",a[i]);
return 0;
}