c语言出现debug error是什么引起的?

今天在写程序的时候出现了一个错误:debugerror我用的是c++6.0,后来把程序改了又改,但是还是出现debugerror警告。最后发现下面的一段程序也会出现这样的... 今天在写程序的时候出现了一个错误:debug error
我用的是c++ 6.0 ,后来把程序改了又改,但是还是出现debug error警告。
最后发现下面的一段程序也会出现这样的警告:
#include <stdio.h>
int main()
{
double s;
scanf("%lf", &s);
return 0;
}

我以为是自己的c++坏了,后来才c-free上运行是对的,但是把这个程序发给同学,然后他们在c++ 6.0 上运行也出现了同样的警告。都不知道怎么回事,非常的郁闷。
展开
 我来答
ningai007
推荐于2017-10-05 · TA获得超过1.6万个赞
知道大有可为答主
回答量:1890
采纳率:0%
帮助的人:305万
展开全部
debug error 是调试过程中产生的错误。
在调试过程中,运行时会插入额外的代码检查参数的合规性,操作的合法性等等(在发布版中,为提高效率则不会插入这些检查)。这些可以检查出一些符合语法但不符合逻辑的行为。 debug error 就是在检查不满足(参数不合规,操作不合法)时产生的错误。
班飙俎秋蝶
2020-03-20 · TA获得超过1095个赞
知道小有建树答主
回答量:1863
采纳率:100%
帮助的人:8.9万
展开全部
这个必须错呀,无论输入的是几位数,你的那几个if都是要将的值变为0,是吧。多以到第五个if的时候条件s==0成立,所以这个if要将t的值变为5,所以左后switch开始的时候t==5恒成立,
犯这个错误的原因是
你对
if...else...语句嵌套理解的错误,
第一:你的程序格式及其不规范。
第二:if语句块
要用花括号
括起来{};
第三:你的程序有很多的重复语句,很浪费机器的资源,程序整体性能不高。
#include
#include
void
main()
{
int
n,s,t,a,b,c,d,e;
printf("请输入一个小于五位的数字n:\n");
scanf("%d",&n);
s=n/10;
if(s==0)
{
e=n;
t=1;
}
else
{
e=n%10;
d=s%10;
s=s/10;
if(s==0)
t=2;
else
{
c=s%10;
s=s/10;
if(s==0)
t=3;
else
{
b=s%10;
s=s/10;
if(s==0)
t=4;
else
{
a=s%10;
s=s/10;
if(s==0)
t=5;
else
t=6;
}
}
}
}
switch(t)
{
case
1:
printf("n为一位数字,每位数字为:%d",e);break;
case
2:
printf("n为二位数字,由高到低每位数字为:%d,%d\n",d,e);break;
case
3:
printf("n为三位数字,由高到低每位数字为:%d,%d,%d\n",c,d,e);break;
case
4:
printf("n为四位数字,由高到低每位数字为:%d,%d,%d,%d\n",b,c,d,e);break;
case
5:
printf("n为五位数字,由高到低每位数字为:%d,%d,%d,%d,%d\n",a,b,c,d,e);break;
default
:
printf("输入的数字超出范围!");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6c5eac102
2010-05-28 · TA获得超过1101个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:584万
展开全部
这个确实好神奇哈,但是如果你加一个输出语句就不会出现这种情况了,然后再把那个输出语句注释了,再调试也不会出现警告了,我搜了下VC6.0的使用规则,没查到,希望楼下的来解决此问题。嘿嘿嘿嘿。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式