C语言中 debug error是什么错误啊

弹出的提示内容为:debugerror!program:E:\学习2\C语言\Debug\lianxi.exeruntimeerror(PressRetrytodebug... 弹出的提示内容为:
debug error!
program:E:\学习2\C语言\Debug\lianxi.exe runtime error
(Press Retry to debug the application)
编写的程序为:
#include<stdio.h>
#include<math.h>
void main()
{int n,s,t,a,b,c,d,e;
printf("请输入一个小于五位的数字n:\n");
scanf("%f",&n);
s=n/10;
if(s==0)
e=n;t=1;
if(s>0)
e=n%10;d=s%10;s=s/10;
if(s==0)
t=2;
else if(s>0)
c=s%10;s=s/10;
if(s==0)
t=3;
else if(s>0)
b=s%10;s=s/10;
if(s==0)
t=4;
else if(s>0)
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("输入的数字超出范围!");
}
}
啊哦。。。刚才的错误找到了,把第六行的f改成d就行了,不过这个程序运行时结果不对啊,为什么啊,高手们帮帮忙啦,呵呵
展开
 我来答
大野瘦子
高粉答主

推荐于2019-10-02 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.6万
展开全部

debug error 是调试过程中产生的错误。

在调试过程中,运行时会插入额外的代码检查参数的合规性,操作的合法性等等(在发布版中,为提高效率则不会插入这些检查)。

这些可以检查出一些符合语法但不符合逻辑的行为。 debug error 就是在检查不满足(参数不合规,操作不合法)时产生的错误。

扩展资料:

C语言#error使用方法

编译程序时,只要遇到 #error 就会跳出一个编译错误,既然是编译错误,要它的其目的就是保证程序是按照你所设想的那样进行编译的。

下面举个例子:

程序中往往有很多的预处理指令

#ifdef XXX

...

#else

#endif

当程序比较大时,往往有些宏定义是在外部指定的(如makefile),或是在系统头文件中指定的,当你不太确定当前是否定义了 XXX 时,就可以改成如下这样进行编译:

#ifdef XXX

...

#error "XXX has been defined"

#else

#endif

这样,如果编译时出现错误,输出了XXX has been defined,表明宏XXX已经被定义了。

篮球树洞君
推荐于2019-09-10 · TA获得超过733个赞
知道答主
回答量:5
采纳率:0%
帮助的人:710
展开全部

您好,debug error 是调试过程中产生的错误。出现错误原因如下:

在调试过程中,运行时会插入额外的代码检查参数的合规性,操作的合法性等等(在发布版中,为

提高效率则不会插入这些检查)。这些可以检查出一些符合语法但不符合逻辑的行为。而debug 

error 就是在检查不满足(参数不合规,操作不合法)时产生的错误。

扩展资料:

C语言经典错误:

void main()的用法并不是任何标准制定的。 C语言标准语法是int main,任何实现都必须支持int 

main(void) { /* ... */ }和int main(int argc, char* argv[]) { /* ... */ }。

类似于a+=a++;或者(i++)+(i++)+(i++)属于未定义行为,并不是说c语言中还未定义这种行为,它

早有定论,它的结果取决于编译器实现,不能写这样的代码。

参考资料:百度百科:C语言



本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daling_009
推荐于2017-09-16 · TA获得超过423个赞
知道答主
回答量:78
采纳率:0%
帮助的人:84万
展开全部
这个必须错呀,无论输入的是几位数,你的那几个if都是要将的值变为0,是吧。多以到第五个if的时候条件s==0成立,所以这个if要将t的值变为5,所以左后switch开始的时候t==5恒成立,
犯这个错误的原因是 你对 if...else...语句嵌套理解的错误,
第一:你的程序格式及其不规范。
第二:if语句块 要用花括号 括起来{};
第三:你的程序有很多的重复语句,很浪费机器的资源,程序整体性能不高。

#include<stdio.h>
#include<math.h>
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("输入的数字超出范围!");
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjfaok
推荐于2017-10-01 · TA获得超过6806个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1621万
展开全部
debug error 是调试过程中产生的错误。在调试过程中,运行时会插入额外的代码检查参数的合规性,操作的合法性等等(在发布版中,为提高效率则不会插入这些检查)。这些可以检查出一些符合语法但不符合逻辑的行为。 debug error 就是在检查不满足(参数不合规,操作不合法)时产生的错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式