要求:使用指针将数组中的元素逆序输出
关键技术:
1.自定义创建了个函数 inverte()用来实现对数组元素的逆序存放
2.自定义函数的形参为个指向数组的指针变量x,初始值指向数组 a 的首元素的地址,x+n是 a[n]元素的地址
3.声明指针变量i、j和 p,i初始值为x,即指向数组首元素地址,j的初始值为 x+n-1,即指向数组最后一个元素的地址,使p指向数组中间元素的地址
4.交换*i与*j的值,即交换a[i]与a[j]的值。移动i和j,使 i 指向数组第二个元素, j 指向倒数第二个元素,继续交换,直到中间值,这样就实现了数组元素的逆序存放
int inverte(int *x, int n)
{
int *p, temp, *i, *j, m = (n - 1) / 2;
i = x;
j = x + n - 1;
p = x + m;
for (; i <= p; i++, j--)
{
temp = *i;
*i = *j;
*j = temp;
}
return 0;
}
运行结果如下
文章来源:https://www.toymoban.com/news/detail-775612.html
完整代码如下 文章来源地址https://www.toymoban.com/news/detail-775612.html
#include <stdio.h>
int inverte(int *x, int n)
{
int *p, temp, *i, *j, m = (n - 1) / 2;
i = x;
j = x + n - 1;
p = x + m;
for (; i <= p; i++, j--)
{
temp = *i;
*i = *j;
*j = temp;
}
return 0;
}
int main()
{
int i, a[10] =
{
1, 2, 3, 4, 5, 6, 7, 8, 9, 0
};
printf("初始的数组为:\n");
for (i = 0; i < 10; i++)
printf("%d,", a[i]);
printf("\n");
inverte(a, 10);
printf("逆置后的数组为:\n");
for (i = 0; i < 10; i++)
printf("%d,", a[i]);
printf("\n");
return 0;
}
到了这里,关于c语言200例 051 使用指针实现逆序存放数组元素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!