求教C语言怎么检查自己编写的函数里边的逻辑错误,比如说watch和debug
如果你修过软件工程,就会知道逻辑错误,主要是靠人工检查来做的,和你具体的语言实现没有关系。有各种方法或流程,比如流程图检查、程序走查、极限编程等,可以帮助你检查程序逻辑。
创新互联总部坐落于成都市区,致力网站建设服务有做网站、网站建设、网络营销策划、网页设计、网站维护、公众号搭建、微信小程序开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
首先你要知道你的模块的作用是什么,比如这里的 digits() 是求整数中的数字个数,然后可以用边界值演算的方法来检查它的实现是否有问题,在纸上演算可以,用 debug 和 watch 也可以,主要是跟踪几个关键变量 a, j, i 在各种输入条件(使用特征和边界条件比如 num=个位数、=负数的情况)的运行时值。
c语言,怎么写一个函数去判断输入数字是否正确
应该输入一个四位数而不是输入四个一位数,这样才符合使用习惯。这样的话,你一次读完即:
scanf("%d",n);
判断这个数是否大于1000且小于10000(如果不是,则不是4位数,同时排除了负数)
取出各位数字,然后看是否有相等的。取千位数:x=n/1000; 取百位数:y=(n-x*1000)/100; 取十位数:z=(n-x*1000-y*100)/10 取个位数:w=n%10;
c语言库函数中有error函数吗?
c语言标准库函数里没有error函数。C语言对异常的处理确实不够好,大多的时候都需要人工除错。
有几个类似的函数,分别处理各种情况下的异常:
ferror函数:在调用各种输入输出函数(如 putc.getc.fread.fwrite等)时,如果出现错误,除了函数返回值有所反映外,还可以用ferror函数检查。 它的一般调用形式为 ferror(fp);如果ferror返回值为0(假),表示未出错。如果返回一个非零值,表示出错。应该注意,对同一个文件 每一次调用输入输出函数,均产生一个新的ferror函 数值,因此,应当在调用一个输入输出函数后立即检 查ferror函数的值,否则信息会丢失。在执行fopen函数时,ferror函数的初始值自动置为0。在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。当你调用"某些"函数出错时,该函数已经重新设置了errno的值。perror函数只是将你输入的一些信息和现在的errno所对应的错误一起输出。
perror函数: 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno 的值来决定要输出的字符串。
strerror函数:用来 从错误号码 查 用英文表达的错误内容,返回指针,指向这段英文字符串。如果你不知道错误号,那么在出错发生时,及时用 errno 的当前值 作参数,打印这段字符串。
c语言检查错误
程序中错误非常多,显示作者对C语言基本语法差漏、欠缺较多。还需扎实理解基本语法,才能应用于编程哦。
#include "stdio.h"//包含stdio库
#include "math.h"//包含math库
main()//主函数
{ float a,b,c;
float s,area;
scanf("%f,%f,%f",a,b,c);
if (a+bcb+caa+cb) //这里有要括号,不能有分号,否则if语句就结束了,下面的语句就变为无条件执行了
{ s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形的面积为:%f\n",area);
if (a==bb==c) //这里的条件改写了,必须要有括号,且不能有分号
printf("等边三角形\n");
else if (a==b||b==c||a==c) //这里的条件改写了,必须要有括号,且不能有分号
printf("等腰三角形\n");
else if ((a*a+b*b==c*c)||(b*b+c*c==a*a)||(a*a+c*c==b*b)) //一个等号是赋值,连写二个等号是比较。少了右括号,不能有分号
printf("直角三角形\n"); //\n要写在双引号内
else printf("一般三角形\n"); //\n要写在双引号内
}
else printf("不能组成三角形\n"); //\n要写在双引号内
}
当前文章:c语言错误检查函数怎么写 错误探测c语言
分享路径:http://lswzjz.com/article/ddegojs.html