前言:
目前我们对“c语言中逆序存放数组中的数据并输出指定元素”都比较注重,朋友们都需要学习一些“c语言中逆序存放数组中的数据并输出指定元素”的相关知识。那么小编同时在网摘上网罗了一些关于“c语言中逆序存放数组中的数据并输出指定元素””的相关文章,希望大家能喜欢,你们快快来学习一下吧!系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。
喜欢的同学记得点赞、转发、收藏哦~
后续C语言经典100例将会以pdf和代码的形式发放到公众号
欢迎关注:计算广告生态 即时查收
1 题目
函数:invert()
功能:用指针实现逆序存放数组元素的值
描述:使用指针将数组中的元素值逆序放置,并且将结果打印出来
2 思路1. 程序变量中两个数字进行交换的三种方法
第一种:引入一个中间量
temp=a;a=b;b=temp;
第二种:要注意的是a+b可能会超过int的范围,这个是该方法的缺点
a=a+b;b=a-b;a=a-b;
第三种:这种方法效率最高,推荐使用
a=a^b;b=a^b;a=a^b;2. 指针的使用
使用指针对数组内容进行操作,数组 a, a 指向数组首位置,a+N-1 指向最后一位。从而利用循环对数组的首尾数字逐个替换
3 代码
#include <stdio.h> #include <stdlib.h>#define N 10/**函数:invert()功能:用指针实现逆序存放数组元素的值描述:使用指针将数组中的元素值逆序放置,并且将结果打印出来**/void invert(int *a) { int *begin, *end, mid; // 定义首尾指针 begin = a; end = a+N-1; mid = (N-1)/2; // 中间位置 int temp; for (int i = 0; i <= mid; ++i){ // 循环,首尾指针内容变换 // temp = *begin; // *begin = *end; // *end = temp; *begin = *begin ^ *end; *end = *begin ^ *end; *begin = *begin ^ *end; ++begin; --end; }}int main(int argc, char const *argv[]) { int a[N] = {1,2,3,4,5,6,7,8,9,10}; printf("当前数组中的值为:"); for (int i = 0; i < N; ++i) { printf("%d ", *(a+i)); } printf("\n"); invert(a); printf("使用指针逆序后数组中的值为:"); for (int i = 0; i < N; ++i) { printf("%d ", *(a+i)); } printf("\n");}
示例结果:
$ gcc ex018.c -o demo$ ./demo当前数组中的值为:1 2 3 4 5 6 7 8 9 10使用指针逆序后数组中的值为:10 9 8 7 6 5 4 3 2 1
--END--
喜欢本文的同学记得点赞、转发、收藏~
更多内容,欢迎大家关注我们的公众号:计算广告生态
后续C语言经典100例将会以pdf和代码的形式发放到公众号
同时也带来更多系列文章以及干货❤️!
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。