黑马程序员技术交流社区

标题: 一个C指针的练习的问题? [打印本页]

作者: 王雪冬    时间: 2014-4-8 06:22
标题: 一个C指针的练习的问题?
本帖最后由  王雪冬 于 2014-4-8 09:32 编辑

执行了下面的代码,先输入10个数字,然后倒序输出,程序如下:
  1. #include<stdio.h>
  2. int main()
  3. {
  4. void inv(int *x,int n);
  5. int i,a[10];
  6. printf("输入10个数:");
  7. for(i=0;i<10;i++)
  8. scanf("%d",&a[i]);
  9. inv(a,10);
  10. for(i=0;i<10;i++)
  11. printf("%d ",a[i]);
  12. printf("\n");
  13. return 0;
  14. }
  15. void inv(int *x,int n)
  16. {
  17. int t,*i,*j;
  18. i=x;
  19. j=x+n-1;
  20. for(;i<j;i++,j++)
  21. {
  22. t=*i;
  23. *i=*j;
  24. *j=t;
  25. }
  26. }
复制代码
但是没有输出,请问哪里出了?



作者: 沙洲冷    时间: 2014-4-8 08:30
本帖最后由 沙洲冷 于 2014-4-8 09:36 编辑

把inv函数中的for循环改为:for(;i<j;i++,j--)就行了。
作者: zjw66485542    时间: 2014-4-8 09:01
本帖最后由 zjw66485542 于 2014-4-8 09:03 编辑
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i=0;
  5. int a[10];
  6. for(i=0;i<10;i++)
  7. {
  8. scanf("%d",&a[i]);
  9. }
  10. for(i=9;i>=0;i--)
  11. {
  12. printf("%d",a[i]);
  13. }
  14. return 0;
  15. }
复制代码

后面这个for循环 从a[9],循环输出 就倒序了  不用你那么麻烦。。。

你那个后面那个函数完全没有用的 ,

先循环的输入,然后从a[9]开始循环 不断的自减,就循环输出到a[0]了。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2