Проблемы с выводом printf
вывожу элементы массива в консоль,на выходе получаю что-то типа "1.#QNAN" что это может означать,кроме того что у меня руки кривые?
printf - достаточно кривая функция :) ну и руки со счетов сбрасывать не будем. дай пожалуйста код. а мы посмотрим.
printf - достаточно кривая функция :) ну и руки со счетов сбрасывать не будем. дай пожалуйста код. а мы посмотрим.
представь себе такой участок кода:
...
char *buf;
gets(buf);
printf(buf);
...
и подумай что будет, если ты на запрос gets введешь %d или скажем %s... :) может быть и у тебя что то подобное происходит.
{
for(j=0; j<100-i; j++)
{
matrix[j] =(double) 1/(100-i);
}
matrix[100-i-1] = 10;
if(i!=0)
matrix[100-i] =(double) 1/(100-i);
}
matrix[99][0] = 10;
matrix[99][1] = 0.5;
for (i=0;i<99;i++)
{
for (j=0; j<99; j++)
{
for (m=0;m<100;m++)
{
matrix[j][m]=matrix[j][m]*(-matrix[j]/matrix)+matrix[m];
}
}
}
for (i=0; i<100; i++)
{
for (j=0; j<100; j++)
{
printf(" %.8f",matrix[j]);
//cout << matrix[j];
}
printf("\n");
printf("\n");
//cout << "\n\n";
}
думаю дело в кривизне рук-может это и не printf вовсе такие гадости делает,хочется понять что это такое #QNAN
printf(" %.8f",matrix[j]);
%.8f - что это значит? скажи что ты хотел сделать... что должна выводить твоя программа теоретически?
и еще определись - на чем ты пишешь. на С или С++. у тебя там в коде я заметил cout... - зачем же использовать printf? имеет достаточно возможностей по форматному выводу.
вывожу элементы массива в консоль,на выходе получаю что-то типа "1.#QNAN" что это может означать,кроме того что у меня руки кривые?
printf тут не причем, ты работаешь с вещественными числами и получаешь некорктные результаты. NAN - означает (Not a number - не число, т.е. его нельзя отобразить)
Из MSDN:
A NaN is generated when the result of a floating-point operation cannot be represented in Institute of Electrical and Electronics Engineers (IEEE) format.
{
for(j=0; j<100-i; j++)
{
matrix[j] =(double) 1/(100-i);
}
Кроме этого
matrix[j][m]=matrix[j][m]*(-matrix[j]/matrix)+matrix[m];
происходит переполнение.
(-matrix[j]/matrix) можно вывести за пределы цикла
Из MSDN:
A NaN is generated when the result of a floating-point operation cannot be represented in Institute of Electrical and Electronics Engineers (IEEE) format.
ой туплю... :(