Я продолжаю получать этот странный вывод из своего кода каждый раз, когда использую «запуск без выгрузки» (ctrl-F5), в отличие от обычного «отладка» (F5).
Когда я пытаюсь найти следующее значение norm_differnece в режиме отладки (нажав клавишу F5), он дает мне правильный ответ для norm_difference
normdifference = 1.000000
но в «пуск без отладки» (нажатие ctrl-f5) неверный вывод
normdifference = 14568160835476641000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Ниже приведен фрагмент кода, который дает вывод
Примечание: X [] = является массивом хранимых значений DOUBLE
for(i=0;i<n;i++){
sum_difference += (pow((X[i*n]-X[i]),2));
}
norm_difference = sqrt(norm_difference);
for(i=0;i<n;i++){
sum_norm_1 += pow(X[i],2);
}
norm_1 = sqrt(norm_1);
//Take square root of the sum of squares for the row
printf("normdifference = %f \n norm_1 = %f \n",norm_difference,norm_1);