Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблемы с выводом printf

8.1K
10 ноября 2004 года
Wint_
6 / / 22.10.2004
вывожу элементы массива в консоль,на выходе получаю что-то типа "1.#QNAN" что это может означать,кроме того что у меня руки кривые?
2
10 ноября 2004 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Wint_
вывожу элементы массива в консоль,на выходе получаю что-то типа "1.#QNAN" что это может означать,кроме того что у меня руки кривые?



printf - достаточно кривая функция :) ну и руки со счетов сбрасывать не будем. дай пожалуйста код. а мы посмотрим.

2
10 ноября 2004 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by squirL


printf - достаточно кривая функция :) ну и руки со счетов сбрасывать не будем. дай пожалуйста код. а мы посмотрим.



представь себе такой участок кода:


...
char *buf;
gets(buf);
printf(buf);
...


и подумай что будет, если ты на запрос gets введешь %d или скажем %s... :) может быть и у тебя что то подобное происходит.

8.1K
10 ноября 2004 года
Wint_
6 / / 22.10.2004
for(i=0; i<99;i++)
{
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
2
10 ноября 2004 года
squirL
5.6K / / 13.08.2003
Цитата:

printf(" %.8f",matrix[j]);


%.8f - что это значит? скажи что ты хотел сделать... что должна выводить твоя программа теоретически?
и еще определись - на чем ты пишешь. на С или С++. у тебя там в коде я заметил cout... - зачем же использовать printf? имеет достаточно возможностей по форматному выводу.

6.3K
10 ноября 2004 года
mefisto
26 / / 13.04.2004
Цитата:
Originally posted by Wint_
вывожу элементы массива в консоль,на выходе получаю что-то типа "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.

368
10 ноября 2004 года
rostyslav
629 / / 13.07.2004
В коде, где-то начиная с третьей строки не все элементы получают значения
 
Код:
for(i=0; i<99;i++)
{
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) можно вывести за пределы цикла
2
10 ноября 2004 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by mefisto

Из 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.



ой туплю... :(

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог