算法为:将 a'0'与 a'n…1'对换,再 a'1'与 a'n…2' 对换 ……;直到将 a'(n…1/2)'与
a'n…int((n…1)/2)'对换。今用循环处理此问题,设两个“位置指示变量”i 和 j,i 的初值为
0,j 的初值为 n…1。将 a'i'与 a'j'交换,然后使 i 的值加 1,j 的值减 1,再将 a'i'与 a'j'
交换,直到 i=(n…1)/2 为止,如图所示。
程序如下:
谭浩强 C 语言程序设计 2001 年 5 月 1 日
void inv(int x'';int n) /*形参x是数组名*/
{
int temp;i;j;m=(n…1)/2;
for(i=0;i