大家好,今天小编关注到一个比较有意思的话题,就是关于c语言程序设计基础课后答案的问题,于是小编就整理了1个相关介绍c语言程序设计基础课后答案的解答,让我们一起看看吧。
如果在写C语言时,代码没错,但是结果总错是什么原因?
很高兴回答答主的问题,希望我的回答对答主有帮助。
根据您的描述,首先排除您的代码语法上出现,因为这种错误在代码编译时,编译器就会报错,这种错误相对容易好找。
大家好,今天小编关注到一个比较有意思的话题,就是关于c语言程序设计基础课后答案的问题,于是小编就整理了1个相关介绍c语言程序设计基础课后答案的解答,让我们一起看看吧。
很高兴回答答主的问题,希望我的回答对答主有帮助。
根据您的描述,首先排除您的代码语法上出现,因为这种错误在代码编译时,编译器就会报错,这种错误相对容易好找。
然后就是查找代码逻辑上的错误,将自己的构思通过画流程图展示出来,然后将程序运行的流程和自己的构思流程对照是否吻合。
之后再查询字段的数据类型是否正确,比如如果存储类型为小数时,必须定义为float或double类型,否则显示结果肯定跟预期的完全不一样。
最后如果还是程序运行错误,那么恭喜你,发现了编译器的BUG了!🤫
写c语言的时候,如果代码没错,这只能说明语法没有出错,直接导致的结果就是能编译通过,并不意味着执行的结果就是正确的。影响c语言代码执行结果的因素非常多。
一、指针的不正确运用;
二、变量精度问题。char,int,unsigned int,long ,float等,如果变量精度使用不正确,也会影响运算结果;
四、正负位;
五、运算符的优先级使用;
C语言虽然是一门比较简单的语言,但是要掌握这些细节,其实并不容易。
你写的代码,如果你觉得你的代码没错,但是运行出错了,可以肯定的告诉你,说明你的知识还不够,可能是语言层面,可能是逻辑问题,可能是编译优化,可能是操作系统相关,反正一句话就是在你有限的知识体系内,根本不知道问题所在,所以才有此疑问。把你的错误放到stackoverflow上一查就出来了。相信我,你不是第一个遇到同样问题的人。
我是码中寻乐,很高兴能为你解答。
代码没错,估计题主表达的意思是能正常编译通过吧,只要没有语法错误,都会编译通过的,但并不代表代码没错,这是两个概念。结果总是错,说明代码有错误,需要进一步调试排查。
考虑如下代码:
从语法上来讲它们都没有错,能正常编译通过,也能执行。但是输出的结果却跟预估的不一样,看起来结果似乎是错误的?
为什么fv的输出不是5.567891534? 为什么cv的输出不是129?
其实都是有原因的,单精度浮点类型float的小数点后有效位只有6位,后面的会四舍五入; 有符号字符类型的数值表达范围是-128~127, 而此处被赋值129,已经溢出了,按它的二进制布局就是10000001,最高位是符号位,1是负数, 将后面7位取反再加一就是1111111,其值为127,带上符号就是-127。
所以看似错误的结果其实是必然,关键是要自己明白究竟错误的是什么。
我想你要表达的是,编绎时,没显示出错,但就是结果错了。要细致地找原因。
根据我以往的经验,原因有以下几点。
1,内存没有释放。
用new,malloc等分配内存,而在结束时来释放,频繁调用,系统崩溃。
或者根本没使用new或malloc,在使用内存时异常。
2,变量与地址用错。
char *p;
char cp
第一个p指地址,在程序中用错。
3,画笔CPen,CStatic等未恢复
到此,以上就是小编对于c语言程序设计基础课后答案的问题就介绍到这了,希望介绍关于c语言程序设计基础课后答案的1点解答对大家有用。