运行程序是显示“Debug Error”,是怎么回事?

loveryxzx 2009-05-05 09:50:21
要求输入一个数后,输出这个数整数部分的位数。例如,输入456.32,则输出3;
我写的代码如下,编译没问题,运行时输入数字后,就弹出“Debug Error! Program:D:\...(这里显示的是路径和这个程序的文件名,这里就省略了) runtime error”,请大家帮帮忙看看是怎么回事

# include "stdio.h"
void main()
{
double num;
int n,num1;
scanf("%lf",&num);
num1=(int)num;
for(n=0;;n++)
{
if(num1==0) {printf("%d\n",n);break;}
else num1/=10;
}
}

...全文
7030 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpf000 2009-05-05
  • 打赏
  • 举报
回复
scanf("%lf",&num);
这一句有错,楼上讲的不懂,不就是运行时错误吗。。。。
哎 现在的人啦。。
loveryxzx 2009-05-05
  • 打赏
  • 举报
回复
真是谢谢啊,已经解决了,今天长见识了。
铁锤哥哥 2009-05-05
  • 打赏
  • 举报
回复
scanf("%lf",&num);这一句有错

原因是为了节省资源,如果用户的程序没有使用浮点运算,编译时就不链接浮点处理模块。但是,库函数也是人写的啊,人是不完美的,库函数又怎么可能是完美的呢。scanf对浮点的检测就有了缺陷了,没有很好地检测出用户程序对浮点使用的意图。因此才会出现这种情况。

解决方法,只要在程序里面出现浮点运算就行了,注意了,是浮点运算,不是只把一个浮点值赋予一个变量,例如float x = cos(0.0)。

这个问题无论TC还是VC都有的。
  • 打赏
  • 举报
回复
你重新建个工程,拷贝过去应该就可以了
bitxinhai 2009-05-05
  • 打赏
  • 举报
回复
# include <stdio.h>
void main()
{
float num;
int n,num1;
scanf("%f",&num1);
num=(int)num1;
for(n=0;;n++)
{
if(num1==0) {printf("%d\n",n);break;}
else num1/=10;
}
}

chp845 2009-05-05
  • 打赏
  • 举报
回复
Debug是汇编使用的!
lingyin55 2009-05-05
  • 打赏
  • 举报
回复

# include "stdio.h"
int main()
{
double num;
int n,num1;
scanf("%lf",&num);
num1=(int)num;
for(n=0;;n++)
{
if(num1==0) {printf("%d\n",n);break;}
else num1/=10;
}
return 0;
}



vs2008下运行正常

456.32
3
请按任意键继续. . .


看看是不是这种莫名其妙的错误

http://topic.csdn.net/t/20050928/17/4300087.html
qqwx_1986 2009-05-05
  • 打赏
  • 举报
回复
重新建个工程

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧