int main1()
{
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int i ;//定义下标i,逆序是把前后对应的元素交换自身存的值
int tmp;//临时存储区
//i < a大小(10)的一半,若以i < a来循环,则数组序列不变
for (i = 0; i < sizeof(a)/sizeof(int)/2; i++)
{
tmp = a[i];
a[i] = a[sizeof(a)/sizeof(int)-i-1];
a[sizeof(a)/sizeof(int)-i-1] = tmp;
}
//打印
for (i = 0; i < 10; i++)
{
printf ("%d\n", a[i]);
}
return 0;
}
//while方法
int main2()
{
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int min = 0;//数组开头元素下标
int max = sizeof(a)/sizeof(int)-1;//数组结尾元素下标
int tmp;
while (min < max)
{
tmp = a[min];
a[min++] = a[max];
a[max--] = tmp;
}
int i;
for (i = 0; i < 10; i++)
{
printf ("%d\n", a[i]);
}
return 0;
}
//指针方式
int main()
{
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int *p1 = a;//
int *p2 = a + sizeof(a)/sizeof(a[0]) - 1;
int i, tmp;
while (p1 < p2)
{
tmp = *p1;
*p1++ = *p2;
*p2-- = tmp;
}
for (i = 0; i < 10; i++)
{
printf ("%2d", a[i]);
}
printf ("\n");
return 0;
}