Расхождение между результатом отладки и результатом сборки / запуска - C в Netbeans - PullRequest
2 голосов
/ 14 мая 2011

(это НЕ вопрос справки по домашнему заданию)

Мой профессор попросил меня написать простую программу для вычисления точечного произведения двух линейных массивов. Это была легкая часть, поэтому я подумал. Когда я собираю и запускаю программу в среде 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);

}

1 Ответ

2 голосов
/ 14 мая 2011

Вы добавляете значения к dPro, но никогда не устанавливаете его начальное значение.

...