用C语言实现数组反序

举报
chenyu 发表于 2021/07/26 23:58:32 2021/07/26
【摘要】 题目: 比如输入:数组是1,2,3,4,5 反序后的结果是:5,4,3,2,1   实现代码如下 #include <stdio.h>//用数组反序数组void reserve1(int a[],int n){ int m=(n+1)/2; int i=0; for(i;i<m;i++){ int j=n-1-i; int ...

题目:

比如输入:数组是1,2,3,4,5

反序后的结果是:5,4,3,2,1

 

实现代码如下


   
  1. #include <stdio.h>
  2. //用数组反序数组
  3. void reserve1(int a[],int n){
  4. int m=(n+1)/2;
  5. int i=0;
  6. for(i;i<m;i++){
  7. int j=n-1-i;
  8. int temp=a[i];
  9. a[i]=a[j];
  10. a[j]=temp;
  11. }
  12. }
  13. //用指针进行反序数组
  14. void reserve2(int *a,int n){
  15. int *p,*q,*length;
  16. int m;
  17. m=(n+1)/2;
  18. p=a;
  19. // length=(a+n+1)/2; //这个地方不是length=(n+1)/2,要记得加上数组的首地址,不要写成这样(a+n+1)/2,
  20. //因为不能对a进行操作,只能进行偏移
  21. length=a+m;
  22. q=a+n-1;
  23. for(;p<length;p++,q--){
  24. int temp=*p;
  25. *p=*q;
  26. *q=temp;
  27. }
  28. }
  29. void main() {
  30. int a[5]={1,2,3,4,5};
  31. int *p;
  32. p=a;
  33. // for(p;p<a+5;p++){
  34. // printf("%d",*p);
  35. // }
  36. int length;
  37. len

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/50549116

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。