㈠ 用C语言编程程序没有错误为什么结果不对
程序可以运行并不表示程序就是正确的
编译和连接都正确,只能说明编译器对他进行语法等检查
没发现他的错误而已,而既然运行结果是错误的,那就是说明一点
可能是你的算法设计的不当,不能正确的解决问题,这样发生的错误
是运行期错误,在编译连接的过程不会出错的,不过幸好,编译器也为我们
提供了一些解决类似运行期错误的一些调试工具,通过debug,进行单步调
试下,观察变量值,看看是不是你想要的等等解决此类问题,具体如何单步
调试见下面:
不过你先要设置断点,然后按下面操作
在VC++6.0中的单步调试:
调试重要的几个键:
F9在当前光标所在的行下断点,如果当前行已经有断点,则取消断点.
F5调试状态运行程序,程序执行到有断点的地方会停下来.
F10单步执行程序.
CTRL+F10运行到光标所在行.
F11和F10的区别是,如果当前执行语句是函数调用,则会进入函数里面.
SHIFT+F11跳出当前所在函数.
步骤:
1,保存为c或c++文件
2,根据断点调试找到错误处。
3,采用F10或F11单步调试找到精确的错误处。其中f10是跳过函数盗用,f11是进入函数体调试。一般是先用f10,确定函数输入输出是否正确(与自己想的一样),如不一样,则用f11进入函数体一步一步调试。
4,在调试过程中,肯定得监视程序中的变量。在vc6.0的右下角有一个watch窗口,专门用来设置监视变量。具体怎样设置自己体会吧。在调试过程中,鼠标轻轻放在变量上也会显示该变量的值
5,vc6.0专门为调试设置了工具箱以方便调试的进行,打开的方法如下。右键——〉在debug(或调试)选择项的勾勾上。ok
㈡ 对于C语言编程出了错,怎么能快速找出错误呢
代码是否存在逻辑错误:
1、变量使用前未被数值
实例:
int main()
{
int x=5,y,z;
z=x*y;
printf("%d",z);
return 0;
}
在此程序中变量y在使用之前未被赋值,所以结果输出z的值就会是系统随机分配一个值给y再加乘以x的值。
2、把赋值赋值符号“=”与等于符号“==”相混淆
实例:
有一下语句:
if(a=5)
{
printf("a等于5");
}
输出的结果永远都是“a等于5”,原因是在执行if(a=5)之时,无论a之前是什么值,此时都会被重新赋值为5,而不是把a的值与5相比较,而正确的表示比较的表示为:
if(a==5)
{
printf("a等于5");
}
(2)编程知道算法程序写不对怎么办扩展阅读
C语言编程注意事项:
1、书写标识符时,忽略了大小写字母的区别。
2、将字符常量与字符串常量混淆。
3、忽略了变量的类型,进行了不合法的运算。
4、忽略了“=”与“==”的区别。
5、忘记加分号。
6、多加分号。
7、输入变量时忘记加地址运算符“&”。