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

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

方法一:

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

}


程序运行结果:

相关推荐
副露のmagic14 分钟前
数组章节 leetcode 思路&实现
算法·leetcode·职场和发展
荣光属于凯撒17 分钟前
P2176 [USACO11DEC] RoadBlock S / [USACO14FEB] Roadblock G/S
算法·图论
blueSatchel18 分钟前
I2C驱动学习
linux·c语言
爱编码的小八嘎29 分钟前
C语言完美演绎6-12
c语言
雨季mo浅忆31 分钟前
记录利用Cursor快速实现拖拽式问卷题型创建
算法
Yzzz-F43 分钟前
2018-2019 ACM-ICPC, Asia Dhaka Regional ContestC[数论]
算法
小Tomkk1 小时前
怎么配置 Visual Studio Code 配置 C/C++
c语言·c++·vscode
Frostnova丶1 小时前
LeetCode 3474. 字典序最小的生成字符串
算法·leetcode·职场和发展
REDcker1 小时前
Nagle 算法与 TCP_NODELAY、TCP_CORK 详解
网络·tcp/ip·算法
β添砖java1 小时前
深度优先搜索DFS
算法·深度优先