A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王雪冬 中级黑马   /  2014-4-8 06:22  /  1143 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由  王雪冬 于 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. }
复制代码
但是没有输出,请问哪里出了?


评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

倒序浏览
沙洲冷 来自手机 中级黑马 2014-4-8 08:30:27
沙发
本帖最后由 沙洲冷 于 2014-4-8 09:36 编辑

把inv函数中的for循环改为:for(;i<j;i++,j--)就行了。
回复 使用道具 举报
本帖最后由 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]了。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马