Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2010, 22:21   #1
VladimirVB
Форумчанин
 
Аватар для VladimirVB
 
Регистрация: 12.10.2008
Сообщений: 131
Стрелка Цикл

Здравствуйте.

Почему переменная y в цикле while не доходит до 0. y доходит только до -0.1.

// Программа выполнена Microsoft Visual C++ 6.0

Код:
#include <cmath>

void main()
{
	double x = 1.8;
	double y = -3.0;
	double z;

	while	(x <= 6.6 && y <= 0.0)
	{
		z = 4 * pow(x, 3) + 2 * x * y - 6;
		
		printf( "x = %.1f y = %.1f f(x,y) = %.1f\n", x, y, z );
		x = x + 0.1;
		y = y + 0.1;
	}
}
VladimirVB вне форума Ответить с цитированием
Старый 29.11.2010, 23:07   #2
oleg.v
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 80
По умолчанию

Это связанно с особенностью вещественных чисел, а именно их представлением в ЭВМ.

Используй условие так:

while (x <= 6.6 && y <= 0.00001)
oleg.v вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл While aharem08 Помощь студентам 9 06.10.2010 21:44
Цикл Joker<777> Паскаль, Turbo Pascal, PascalABC.NET 3 30.09.2010 16:05
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34