|
发表于 2014-6-22 15:37:25
|
显示全部楼层
#include <stdio.h>
void reserve(int *x, int n); /*形参x为指针变量*/
void main()
{
int i, a[10] = {3, 7, 9, 11, 0, 6, 7, 5, 4, 2};
printf("The original array:\n");
for( i=0; i < 10; i++)
{
printf("%d ", a[i]);
}
printf("\n");
reserve(a, 10);
printf("The array has benn inverted:\n");
for( i=0; i < 10; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
void reserve(int *x, int n) /*形参x为指针变量*/
{
int *p, temp, *i, *j, m;
m = (n-1)/2;
i = x; //i指向数组的第一个元素
j = x-1+n; //j指向的是数组的最后一个元素
p = x+m; //指向中间,配对……
for( ; i <= p; i++, j--)
{
temp = *i;
*i = *j;
*j = temp;
}
}
楼主 ,我只改了你两个地方就实现了你那个首先按顺序输出数组,调用函数后,逆序输出,
你看看
for( i=0; i < 10; i++)
{
printf("%d ", a[i]);
}
for( i=0; i < 10; i++)
{
printf("%d ", a[i]);
}
看看你原来写的
for( i=0; i < 10; i++)
{
printf("%d ", a);
}
for( i=0; i < 10; i++)
{
printf("%d ", a);
}
看出哪里不一样了吗? |
|