编写程序,以指针的方式,就地逆置一维数组。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据先输入数据个数n,然后输入n个整数。
输出格式:
对于每组测试,在一行上输出逆置之后的结果。数据之间以一个空格分隔。
输入样例:
2
4 1 2 5 3
5 4 3 5 1 2
输出样例:
3 5 2 1
2 1 5 3 4
C程序如下:
#include <stdio.h>
int main()
{
int t,i,j,a[100],d,b,n;
scanf("%d",&t);
for(i=0; i<t; i++)
{
scanf("%d",&n);
for(j=0;j<n;j++)
{
scanf("%d",&a[j]);
}
for(j=0,d=n-1; j<n/2;j++,d--)
{
b=a[d];//c要除以2从中间分开,从头(尾)开始逆序赋值。
a[d]=a[j];
a[j]=b;
}
for(j=0; j<n; j++)
{
if(j==0)
{
printf("%d",a[j]);
}
else
{
printf(" %d",a[j]);
}
}
printf("\n");
}
return 0;
}