1. /* 题目描述
  2. 输入10个数字,然后逆序输出。
  3. 输入
  4. 十个整数
  5. 输出
  6. 逆序输出,空格分开
  7. 样例输入
  8. 1 2 3 4 5 6 7 8 9 0
  9. 样例输出
  10. 0 9 8 7 6 5 4 3 2 1 */
  11. /*思路:逆序存放,再逐个输出*/
  12. #include<stdio.h>
  13. int main()
  14. {
  15. void inv(int *x,int n);
  16. int a[10],*p;
  17. for(int i=0;i<10;i++)
  18. scanf("%d",&a[i]);
  19. inv(a,10);//作用是逆序存放
  20. for(int i=0;i<10;i++)
  21. printf("%d ",a[i]);
  22. return 0;
  23. }
  24. void inv(int *x,int n)
  25. {
  26. int *i,*j,temp,*p;
  27. i=x;//i指向首地址
  28. j=x+n-1;//j指向尾地址
  29. //调换首尾地址里面的值
  30. /* temp=*i;
  31. *i=*j;
  32. *j=temp; //这块代码只是调换了首尾的值,来一个循环就可以调换所有*/
  33. int m=(n-1)/2;//取一个中间值
  34. p=m+x;//使指针变量指向中间值
  35. for(i=x;i<=p;i++,j--)//如果地址值i小于p
  36. {
  37. temp=*i;
  38. *i=*j;
  39. *j=temp;
  40. }
  41. }

有问题可以留言

点赞(0)
 

0 分

0 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论