指针实现数组的逆序存放并输出

题目:用指针实现数组的逆序存放并输出

方法一:

#include<stdio.h>

int main()

{

int arr[10] = {0};

int i;

//计算数组元素的个数

int n = sizeof(arr)/sizeof(int);

printf("请输入10个数字为数组赋值:");

//为数组赋值

for(i=0;i<n;i++)

{

scanf("%d",&arr[i]);

}

//打印原始数组

for(i=0;i<n;i++)

{

printf("%d ",arr[i]);

}

printf("\n");

putchar('\n');

//定义指针变量

int *left = &arr[0];

int *right = &arr[n-1];

//利用指针的解引用操作交换数组首尾元素的值

for(i=0;i<(n/2);i++)

{

int temp = *left;

*left = *right;

*right = temp;

left++;

right--;

}

//打印交换后的数组

for(i=0;i<n;i++)

{

printf("%d ",arr[i]);

}

putchar('\n');

return 0;

}


方法二:

#include<stdio.h>

int main()

{

int arr[10] = {0};

int i;

//计算数组元素的个数

int n = sizeof(arr)/sizeof(int);

printf("请输入10个数字为数组赋值:");

//为数组赋值

for(i=0;i<n;i++)

{

scanf("%d",&arr[i]);

}

//打印原始数组

for(i=0;i<n;i++)

{

printf("%d ",arr[i]);

}

printf("\n");

putchar('\n');

//定义指针变量

int *left = &arr[0];

int *right = &arr[n-1];

//利用指针的解引用操作交换数组首尾元素的值

while(left<right)

{

int temp = *left;

*left = *right;

*right = temp;

left++;

right--;

}

//打印交换后的数组

for(i=0;i<n;i++)

{

printf("%d ",arr[i]);

}

putchar('\n');

return 0;

}


程序运行结果:

相关推荐
lingchen1906几秒前
MATLAB图形绘制基础(一)二维图形
开发语言·算法·matlab
hlpinghcg5 分钟前
(全闭环)FUNC_FullCloseLoop
算法·电机·电机控制
朝新_11 分钟前
【EE初阶】JVM
java·开发语言·网络·jvm·笔记·算法·javaee
x70x8026 分钟前
git仓库基本使用
git·算法·编程
仰泳的熊猫1 小时前
LeetCode:773. 滑动谜题
数据结构·c++·算法·leetcode
夏鹏今天学习了吗1 小时前
【LeetCode热题100(50/100)】岛屿数量
算法·leetcode·职场和发展
墨染点香1 小时前
LeetCode 刷题【134. 加油站】
算法·leetcode·职场和发展
yi碗汤园2 小时前
【一文了解】八大排序-冒泡排序、选择排序
开发语言·前端·算法·unity·c#·1024程序员节
二倍速播放2 小时前
贪心算法 with Gemini
算法·贪心算法
是苏浙2 小时前
零基础入门C语言之深入了解指针3
c语言·开发语言