C为什么运行出来结果不对呢?才学 不要太深奥 就这源码错误的原因就可以了 谢谢(求大神指教一下, 为什么这个C语言程序运行出来的结果很不对)
求大神指教一下, 为什么这个C语言程序运行出来的结果很不对
printf("值为%d",&a);
//这样就输出的是a的地址,去掉&
用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程序哪里不对?为什么结果不对?
楼主写稍微复杂了一点,你看我帮你改的代码.
#include <stdio.h>
void main()
{
char string[81];
int i,num=1;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)
if(c==' ') //注意这里是'空格'
num++;
else if(num==0)
num=1;
printf("There are %d words in the line.\n",num);
}
c程序编译没有问题但是运行结果不对,求大神指点!
没太明白程序的目的(比如单纯是训练语法之类的),感觉就目前实现的功能来看太啰嗦了。
言归正传,发现以下问题:
1、所有累加器变量都没有初始化为0,这将得到不可预知的结果。具体指fun中的p和sum中的t
2、for语句里面已经写了i++或j++,循环体内部又写了一遍,不知是否有意为之。若的确希望奇数项相加,不妨直接写
for( j=1; j<=n; j+=2 );若不是,删去循环体内的循环变量自加。
供参考