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

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

方法一:

#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;

}


程序运行结果:

相关推荐
ulias2121 天前
单元最短路问题
数据库·c++·算法·动态规划
崎岖Qiu1 天前
leetcode380:RandomizedSet - O(1)时间插入删除和获取随机元素(数组+哈希表的巧妙结合)
java·数据结构·算法·leetcode·力扣·散列表
ZLRRLZ1 天前
【数据结构】图
数据结构·算法·图论
Ada_疯丫头1 天前
杰伊·温格罗教我数据结构与算法
算法
小白开始进步1 天前
机器人集群调度算法简介与实现思路
算法·机器人
好易学·数据结构1 天前
可视化图解算法60: 矩阵最长递增路径
数据结构·算法·leetcode·力扣·递归·回溯算法·牛客
SamsongSSS1 天前
JavaScript逆向SM国密算法
javascript·算法·逆向
图灵信徒1 天前
2025 ICPC Gran Premio de Mexico 3ra Fecha
c++·算法·codeforcrs
大锦终1 天前
【算法】栈专题
数据结构·c++·算法·leetcode
haogexiaole1 天前
资源图分配算法
算法