#include<stdio.h>
int main(void)
{
int arr[5]={1,3,2,5,4};
int i;
for(i=0;i<5;i++)
{
printf("逆置前%d\n",arr[i]);
}
int j,start,end;
start=arr[0]; //起始下标位置
end=arr[5]-1; //末尾下标位置
int tamp; //临时变量
while(start<end) //交换循环
{
for(j=0;j<5;j++)
tamp=start;
start=end;
end=tamp;
start++;
end--;
} printf("逆置后%d\n",arr[j]);
}
你把指针当整数用了。下面的代码运行正确。
#include<stdio.h>
int main(void)
{
int arr[5]={1,3,2,5,4};
int i;
for(i=0;i<5;i++)
{
printf("逆置前%d\n",arr[i]);
}
int j, *start, *end;
start=&arr[0]; //起始下标位置
end=&arr[5-1]; //末尾下标位置
int tamp; //临时变量
while(start<end) //交换循环
{
tamp=*start;
*start=*end;
*end=tamp;
start++;
end--;
}
for(i=0;i<5;i++)
{
printf("逆置后%d\n",arr[i]);
}
}
// Output
逆置前1
逆置前3
逆置前2
逆置前5
逆置前4
逆置后4
逆置后5
逆置后2
逆置后3
逆置后1
希望对您有帮助,盼采纳:https://blog.csdn.net/it_xiangqiang/category_10768339.html