一个递归题
C/C++ code
void invert(int a[] int k)
{
int t;
if(_1__)
{
invert(____2____)
t=a[0];
a[0]=a[k-1];
a[k-1]=t;
}
}
递归函数inver(int a[],int k)将指定数组中的前k个元素逆置
完成程序
------解决方案--------------------#include<stdio.h>
void invert(int a[],int k)
{
	int t=0;
	if(k>2)
	{
		invert(a+1,k-2);
	}
	t=a[0];
	a[0]=a[k-1];
	a[k-1]=t;
}
void main()
{
	int a[10]={1,2,3,4,5,6,7,8,9,10};
	int k=10;
	invert(a,k);
	for(int i=0;i<10;i++)
	{
		printf("%d \t",a[i]);
	}
}
输出:10 9 8 7 6 5 4 3 2 1
------解决方案--------------------(1)k>1
(2)&a[1],k-2
------解决方案--------------------#include<stdio.h>
void invert(int a[],int k)
{
if(k==1)printf("%d",a[0]);
else  
{
printf("%-3d ",a[k-1]);
invert(a,k-1);
}
}
void main()  
{  
int a[10]={1,2,3,4,5,6,7,8,9,10};
invert(a,10);
}