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

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

方法一:

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

}


程序运行结果:

相关推荐
练习时长一年4 小时前
LeetCode热题100(杨辉三角)
算法·leetcode·职场和发展
lzllzz234 小时前
bellman_ford算法
算法
栈与堆4 小时前
LeetCode 19 - 删除链表的倒数第N个节点
java·开发语言·数据结构·python·算法·leetcode·链表
sunfove4 小时前
麦克斯韦方程组 (Maxwell‘s Equations) 的完整推导
线性代数·算法·矩阵
Rui_Freely4 小时前
Vins-Fusion之 SFM准备篇(十二)
人工智能·算法·计算机视觉
yyy(十一月限定版)5 小时前
matlab矩阵的操作
算法·matlab·矩阵
努力学算法的蒟蒻5 小时前
day58(1.9)——leetcode面试经典150
算法·leetcode·面试
txinyu的博客5 小时前
map和unordered_map的性能对比
开发语言·数据结构·c++·算法·哈希算法·散列表
搞笑症患者5 小时前
压缩感知(Compressed Sensing, CS)
算法·最小二乘法·压缩感知·正交匹配追踪omp·迭代阈值it算法
im_AMBER5 小时前
Leetcode 101 对链表进行插入排序
数据结构·笔记·学习·算法·leetcode·排序算法