2011-05-14 55 views
2

(这不是一个家庭作业帮助问题)差异 - C的Netbeans的

有人问我我的教授写一个简单的程序来计算两个线性阵列的点积。这是很容易的部分,所以我想。当我建立并在NetBeans IDE 7.0上运行的程序,在函数结束我的print语句读取:

点积是1246

运行失败(退出值25,总时间:68ms)

但是,当我在调试模式下运行它,我的输出窗口显示:

点积是1240

该程序用于为先导,以其他两个方案我必须建立在它的上面(使用P线程和OpenMP),所以它的对我来说很重要,我可以正常工作,而且我没有任何意外的结果。

任何帮助,将不胜感激。我只是不明白为什么会发生这种情况。一切看起来都适合我,但一双新眼睛不会受伤。

#include <stdio.h> 
#include <stdlib.h> 

#define NN 16 //Len of array 

main() 
{ 
    int a[NN], b[NN], iVal, dPro; 
    int i; 
    iVal = 0; 
    for(i=0; i<NN; i++) //Loop for building the arrays 
    { 
     a[i]=1.0*(i); 
     b[i]=1.0*(i); 
    } 
    for(i=0; i<NN; i++) //Loop for computing the dot product 
    { 
     dPro += a[i]*b[i]; 
    } 

    printf("The dot product is %d \n", dPro); 

} 

回答

2

您将值添加到dPro,但您从未设置其起始值。

+0

+1不错(更多单词) – MByD 2011-05-14 18:50:27

+0

现在全部顺利运行。足够简单的解决方法我几乎对自己失望失望。谢谢! – WCStride 2011-05-14 19:05:26