数组逆序
思路:
头尾交换,头后移,尾前移。
方法一
#include<stdio.h>
#include<string.h>
int main()
{
char str[] = {'a','b','c','d','e','f','g'};
int len = strlen(str);
int i;
for (i=0;i<(len+1)/2;i++) //len 加 1 是保证当长度为奇数是也符合
{
char p; //临时字符用来做交换的中间变量
p = str[i];
str[i] = str[len-i-1];
str[len-1-i] = p;
}
for (i=0;i<len;i++)
printf("%c ",str[i]);
return 0;
}
方法二
#include<stdio.h>
#include<string.h>
int main()
{
int a[5] = {1,4,5,6,3};
int p = 0;
int q = 5 - 1;
while (p < q)
{
int temp;
temp = a[p];
a[p] = a[q];
a[q] = temp;
p++;
q--;
}
for (int i=0;i<5;i++)
printf("%5d",a[i]);
return 0;
}
方法三
#include<stdio.h>
#include<string.h>
int main()
{
int a[5] = {1,4,5,6,3};
int *p = a;
int *q = p + 4;
while (p<q)
{
int temp;
temp = *p;
*p = *q;
*q = temp;
p++;
q--;
}
for (int i=0;i<5;i++)
printf("%5d",a[i]);
return 0;
}