CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

函数不调用了,多谢帮忙。

楼主wdy0725()2004-05-03 11:42:49 在 C/C++ / C语言 提问

我编了一个极其弱智的数制转换和序,但在分步运行时,它不调用我定义的函数,想了半天也没解决,还请各位指点。我用的是TC4。3(也不知道是哪个版本),还需要用return返回。用TC2。0就不一定要加返回语句,但也不调用函数,麻烦你们给看一下,谢谢了。  
   
  #   include   <stdio.h>  
  #   include   <conio.h>  
   
  int   Bin(int   i)  
  {  
      int   j,BinArr[15];  
      for   (j=0;i!=0;j++)  
            {  
              BinArr[j]=i%2;  
              i/=2;  
            }  
      while   (j<0)  
            {  
                printf("%d",BinArr[j]);  
                j--;  
            }             //   一定要加reutrn么?  
   
  }  
  void   main()  
  {   int   n,t;  
      clrscr();  
      printf("Please   Input   a   number:   \n");  
      scanf("%d",&n);  
      printf("10---2   Press1\n         10---16   Press   2\n         10---2   and   10---16     Press3");           //是转换为二进制还是十六进制,或是都转换,下面先只实现一个.  
      scanf("%d",&t);  
      switch   (t)  
      {  
            case   1:Bin(n);   break;       //就是这个函数不被调用,为什么?  
          //   case   2:Hex(n);   break;  
          //   case   3:Bin(n);   Hex(n);   break;    
      }  
      getch();  
  } 问题点数:50、回复次数:14Top

1 楼freefalcon(心宇—消失中...)回复于 2004-05-03 11:48:26 得分 25

怎么会不调用呢?我在VC下测试可以的  
  int   Bin(int   i)要有return,你的编译器难道没有给出错误或者警告信息?Top

2 楼wdy0725()回复于 2004-05-03 11:52:35 得分 0

是的,什么错误警告都没有,怎么回事,我搞了半天了。  
  Top

3 楼freefalcon(心宇—消失中...)回复于 2004-05-03 11:53:04 得分 0

有一种情况不会调用,就是你的输入有误Top

4 楼freefalcon(心宇—消失中...)回复于 2004-05-03 11:54:48 得分 0

在switch   (t)前加断点跟踪一下,看t的值为多少Top

5 楼wdy0725()回复于 2004-05-03 11:57:07 得分 0

我又试了一次,没有return是可以的,不过有一个警告,但没结果输出。Top

6 楼wdy0725()回复于 2004-05-03 12:00:56 得分 0

断点跟踪?我没用过,新手。Top

7 楼wdy0725()回复于 2004-05-03 12:03:14 得分 0

我用F8分步运行,它确实选择了case   1,可没结果。Top

8 楼cngdzhang()回复于 2004-05-03 12:13:58 得分 25

我改了一下,好了:)  
   
  断点要设在Bin函数里面  
   
  #   include   <stdio.h>  
  #   include   <conio.h>  
   
  void   Bin(int   i)     //改为void  
  {  
      int   j,BinArr[15];  
      for   (j=0;i!=0;j++)  
            {  
              BinArr[j]=i%2;  
              i/=2;  
            }  
            j--;     //这里j加多了一,要先减去1  
      while   (j>=0)     //这里不是while   (j<0),因为j本来就是正数,否则循环不执行的  
            {  
                printf("%d",BinArr[j]);  
                j--;  
            }              
   
  }  
  void   main()  
  {   int   n,t;  
      clrscr();  
      printf("Please   Input   a   number:   \n");  
      scanf("%d",&n);  
      printf("10---2   Press   1\n10---16   Press   2\n10---2   and   10---16     Press   3\n");           //是转换为二进制还是十六进制,或是都转换,下面先只实现一个.  
      scanf("%d",&t);  
      switch   (t)  
      {  
            case   1:Bin(n);   break;        
          //   case   2:Hex(n);   break;  
          //   case   3:Bin(n);   Hex(n);   break;  
      }  
      getch();  
  }  
  Top

9 楼freefalcon(心宇—消失中...)回复于 2004-05-03 12:14:13 得分 0

while   (--j>=0)   //////////<<<<<<<<<<<<<<<<<<注意改了这里  
  {  
  printf("%d",BinArr[j]);  
  }             //   一定要加reutrn么?  
  Top

10 楼freefalcon(心宇—消失中...)回复于 2004-05-03 12:15:12 得分 0

555,楼上抢先了Top

11 楼cngdzhang()回复于 2004-05-03 12:16:33 得分 0

F7才是跟入函数  
  F8是把一个函数当作一条语句执行  
  Top

12 楼wdy0725()回复于 2004-05-03 12:21:17 得分 0

我试过了,成功了,太感谢你们了,再次感谢!!Top

13 楼wdy0725()回复于 2004-05-03 12:23:58 得分 0

F7,F8,哦,明白了,谢谢!Top

14 楼liushuaiboy(标准菜鸟)回复于 2004-05-03 14:07:02 得分 0

markTop

相关问题

  • 函数调用
  • 函数调用
  • 调用函数
  • 函数调用
  • 函数调用
  • 函数调用?
  • 主函数可不可以调用
  • 重载函数不被调用
  • 调用函数,值不能传递??
  • vc能不能调用flash的函数?

关键词

  • 函数
  • binarr
  • 调用
  • include

得分解答快速导航

  • 帖主:wdy0725
  • freefalcon
  • cngdzhang

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo