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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2013, 21:19   #1
revizor
Форумчанин
 
Аватар для revizor
 
Регистрация: 20.01.2013
Сообщений: 146
По умолчанию Программа по разному работает в разных IDE

Почему эта программа в Visual Studio правильно работает, а в CodeBlocks неправильно?

Код:
#include <iostream>
#include <cstdlib>
#include <cmath>

int main()
{
	setlocale(LC_ALL, "");
	
	const int MAX=10;

	for (int x=1; x<=MAX; ++x)
		for (int y=x; y<=MAX; ++y)
			for (int z=y; z<=MAX; ++z)
				if (abs(1.0/x + 1.0/y + 1.0/z - 1.0) < 1e-6)
					std::cout << "(" << x << ", " << y << ", " << z << "); ";
					 
	std::cout << std::endl; 
	system("pause");	
	return 0; 
}
в codeblocks результат условия if() всегда true

Последний раз редактировалось revizor; 10.06.2013 в 21:28.
revizor вне форума Ответить с цитированием
Старый 10.06.2013, 22:55   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2revizor
м.б потому, что для вещественных чисел нужно использовать fabs?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 10.06.2013, 23:16   #3
revizor
Форумчанин
 
Аватар для revizor
 
Регистрация: 20.01.2013
Сообщений: 146
По умолчанию

pproger, спасибо. все заработало!

я так понимаю что в visual studio функция abs() более универсальная. она правильно будет работать как с целыми, так и с вещественными

а в codeblocks abs() только с целыми?
revizor вне форума Ответить с цитированием
Старый 11.06.2013, 08:20   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

CodeBlocks использует компилятор gcc (по дефолту), который делает так, как написано в стандарте. (Microsoft имеет привычку рассматривать стандарты не стандартно, Visual Studio тому яркий пример).
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему один и тот же код не работает на разных IDE Dfence11 Общие вопросы C/C++ 3 14.04.2013 12:56
Сессия работает по разному в разных ОС dr.Chas PHP 4 04.08.2011 12:46
На разных компьютерах по разному считает jmaz Microsoft Office Excel 1 19.01.2010 15:18
Сайт по разному отображается на разных компьютерах Abramovich HTML и CSS 4 05.01.2009 16:30
По-разному печатается на разных компьютерах igr БД в Delphi 6 05.01.2009 16:19