Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
sergey_viper
9 / 3 / 2
Регистрация: 15.04.2012
Сообщений: 185
1

Работа над ошибками

01.10.2012, 16:06. Просмотров 611. Ответов 15
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
using namespace std;
 
 
int main()
{
    double a,b,c;
    bool x;
    cout << "Hello world!" << endl;
    cin >> a >> b >> c ;
    if ( abs(a) == abs(b) && abs(b) == abs(c) && abs(a) == abs (c) )
    x == 1;
    else x == 0;
    cout << x;
    return 0;
}
Выдаёт
C++
1
2
3
4
5
\main.cpp||In function 'int main()':|
\main.cpp|12|error: 'abs' was not declared in this scope|
\main.cpp|13|warning: statement has no effect|
\main.cpp|14|warning: statement has no effect|
||=== Build finished: 1 errors, 2 warnings ===|
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2012, 16:06
Ответы с готовыми решениями:

Работа над ошибками
Что не так с кодом? #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include...

задача С++ масивы работа над ошибками
#include &lt;vector&gt; #include &lt;iostream&gt; #include &lt;algorithm&gt; #include...

Работа над ошибками,пару элементарных заданий
Дополните пожалуйста,где это нужно. 1)Классы памяти. auto —...

Создание и использование классов.Работа над ошибками
Задали сделать програмку. Вроде бы ничего сложного. Но выбивает ошибки( ...

Результат работы над ошибками по поводу глобальных переменных на с++
Данная статья выйдет в топ. По теме как делать глобальные переменные. Так как...

15
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 16:14 2
C++
1
2
x = 1;
else x = 0;
0
Somebody
2802 / 1613 / 251
Регистрация: 03.12.2007
Сообщений: 4,215
Завершенные тесты: 3
01.10.2012, 16:16 3
Для вещественных чисел надо использовать fabs.
1
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 16:25 4
Насчёт 'abs' не знаю. Два компилятора ошибки не выдают.

Добавлено через 6 минут
Цитата Сообщение от Somebody Посмотреть сообщение
Для вещественных чисел надо использовать fabs.
abs() для double совпадает с fabs().
1
sergey_viper
9 / 3 / 2
Регистрация: 15.04.2012
Сообщений: 185
01.10.2012, 16:27  [ТС] 5
Цитата Сообщение от alsav22 Посмотреть сообщение
Насчёт 'abs' не знаю. Два компилятора ошибки не выдают.

Добавлено через 6 минут
abs() для double совпадает с fabs().
Но мой компилятор сразу же отреагировал на изменение. И всё заработало
Если можете, подскажите ещё с булевским типом.
Можно ли по другому получить ответ от условия?
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 16:39 6
Цитата Сообщение от sergey_viper Посмотреть сообщение
Но мой компилятор сразу же отреагировал на изменение.
Что изменили и какой компилятор?

Добавлено через 3 минуты
C++
1
if ( abs(a) == abs(b) && abs(b) == abs(c))
Этого, по моему, достаточно.
0
Somebody
2802 / 1613 / 251
Регистрация: 03.12.2007
Сообщений: 4,215
Завершенные тесты: 3
01.10.2012, 16:46 7
Цитата Сообщение от alsav22 Посмотреть сообщение
abs() для double совпадает с fabs().
Действительно, не знал. Но всё равно это не сишная функция, и в таком случае надо math.h менять на cmath.
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 16:55 8
Цитата Сообщение от Somebody Посмотреть сообщение
Но всё равно это не сишная функция, и в таком случае надо math.h менять на cmath.
Может быть, но у меня в Студии показывает, что abs() объявлена в math.h. Может от компилятора зависит, какой заголовок надо прописать? sergey_viper, какой компилятор используете?
0
sergey_viper
9 / 3 / 2
Регистрация: 15.04.2012
Сообщений: 185
01.10.2012, 17:17  [ТС] 9
Цитата Сообщение от alsav22 Посмотреть сообщение
Что изменили и какой компилятор?

Добавлено через 3 минуты
C++
1
if ( abs(a) == abs(b) && abs(b) == abs(c))
Этого, по моему, достаточно.
Кодеблокс и GCC compiler from MinGW.
С++
Я изначально ошибся, мне надо не И а ИЛИ.
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 17:24 10
Так что изменили, после чего заработало? abs() на fabs() ?
0
sergey_viper
9 / 3 / 2
Регистрация: 15.04.2012
Сообщений: 185
01.10.2012, 17:44  [ТС] 11
Цитата Сообщение от alsav22 Посмотреть сообщение
Так что изменили, после чего заработало? abs() на fabs() ?
Именно. Не знаю с чем это связано, так как сам нуб
0
Somebody
2802 / 1613 / 251
Регистрация: 03.12.2007
Сообщений: 4,215
Завершенные тесты: 3
01.10.2012, 17:58 12
Вот gcc ругается, когда без cmath:
http://liveworkspace.org/code/6f54d608fffff5af98fe62c2bbdeab19
Цитата Сообщение от alsav22 Посмотреть сообщение
Может быть, но у меня в Студии показывает, что abs() объявлена в math.h. Может от компилятора зависит, какой заголовок надо прописать?
В Студии много чего может быть...
А вообще, если я правильно понял отсюда:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (7.22.6)
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf (26.8)
везде и всегда был fabs в math.h/cmath.
В C *abs есть в stdlib:
C
1
2
3
int abs(int j);
long int labs(long int j);
long long int llabs(long long int j);
В C++ в cstdlib добавляются abs для long и long long, а в cmath - для float, double и long double.
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 18:19 13
Цитата Сообщение от Somebody Посмотреть сообщение
В Студии много чего может быть...
Согласен, но mingv тоже ошибки не выдаёт.
0
Миниатюры
Работа над ошибками  
Somebody
2802 / 1613 / 251
Регистрация: 03.12.2007
Сообщений: 4,215
Завершенные тесты: 3
01.10.2012, 19:04 14
Цитата Сообщение от alsav22 Посмотреть сообщение
Согласен, но mingv тоже ошибки не выдаёт.
Странно...
0
Миниатюры
Работа над ошибками  
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 19:39 15
Компиляторы, наверное, разные. Сборака от niXman. Я отдельно подключал. Папка с дистрибутивом вот так выглядит: x86_64-mingw32-gcc-4.7.0-release-c,c++,fortran-sjlj. А это окно такое же?
0
Миниатюры
Работа над ошибками  
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
01.10.2012, 19:41 16
sergey_viper,
C++
1
#include <cmath>
и использый abs(), и по логике вещей будет тебе счастье)
Да и тут ещё, лучше вот так:
C++
1
if ( (abs(a) == abs(b)) && (abs(b) == abs(c)) && (abs(a) == abs (c)) )
А если не сработает abs() , то можно sqrt(row(a,2));
0
01.10.2012, 19:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2012, 19:41

Работа над векторами!
Даны вещественные числа a1, a2, ... an. Поменять местами наибольший и...

Работа над массивом с 10 элементами
Есть задание: В массиве с 10 целыми числами сделать: количество четных и...

Работа над множествами,STL
Собственно есть задача: Дан некий текст.Нужно в алфавитном порядке напечатать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru