(это НЕ вопрос справки по домашнему заданию)
Мой профессор попросил меня написать простую программу для вычисления точечного произведения двух линейных массивов. Это была легкая часть, поэтому я подумал. Когда я собираю и запускаю программу в среде IDE NetBeans 7.0, мой оператор печати в конце функции читает:
Точечный продукт 1246
RUN FAILED (выходное значение 25, общее время: 68 мс)
Но когда я запускаю его в режиме отладки, мое окно вывода показывает:
Точечный продукт 1240
Эта программа служит предшественником двух других программ, которые я должен построить поверх нее (используя Pthreads и 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);
}