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

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

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

Author24 — интернет-сервис помощи студентам
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2012, 16:06
Ответы с готовыми решениями:

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

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

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

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

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

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

Добавлено через 6 минут
abs() для double совпадает с fabs().
Но мой компилятор сразу же отреагировал на изменение. И всё заработало
Если можете, подскажите ещё с булевским типом.
Можно ли по другому получить ответ от условия?
0
5498 / 4893 / 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
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
01.10.2012, 16:46 7
Цитата Сообщение от alsav22 Посмотреть сообщение
abs() для double совпадает с fabs().
Действительно, не знал. Но всё равно это не сишная функция, и в таком случае надо math.h менять на cmath.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 16:55 8
Цитата Сообщение от Somebody Посмотреть сообщение
Но всё равно это не сишная функция, и в таком случае надо math.h менять на cmath.
Может быть, но у меня в Студии показывает, что abs() объявлена в math.h. Может от компилятора зависит, какой заголовок надо прописать? sergey_viper, какой компилятор используете?
0
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
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 17:24 10
Так что изменили, после чего заработало? abs() на fabs() ?
0
9 / 3 / 2
Регистрация: 15.04.2012
Сообщений: 185
01.10.2012, 17:44  [ТС] 11
Цитата Сообщение от alsav22 Посмотреть сообщение
Так что изменили, после чего заработало? abs() на fabs() ?
Именно. Не знаю с чем это связано, так как сам нуб
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
01.10.2012, 17:58 12
Вот gcc ругается, когда без cmath:
http://liveworkspace.org/code/... c2bbdeab19
Цитата Сообщение от alsav22 Посмотреть сообщение
Может быть, но у меня в Студии показывает, что abs() объявлена в math.h. Может от компилятора зависит, какой заголовок надо прописать?
В Студии много чего может быть...
А вообще, если я правильно понял отсюда:
http://www.open-std.org/jtc1/s... /n1570.pdf (7.22.6)
http://www.open-std.org/jtc1/s... /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
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 18:19 13
Цитата Сообщение от Somebody Посмотреть сообщение
В Студии много чего может быть...
Согласен, но mingv тоже ошибки не выдаёт.
Миниатюры
Работа над ошибками  
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
01.10.2012, 19:04 14
Цитата Сообщение от alsav22 Посмотреть сообщение
Согласен, но mingv тоже ошибки не выдаёт.
Странно...
Миниатюры
Работа над ошибками  
0
5498 / 4893 / 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
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2012, 19:41
Помогаю со студенческими работами здесь

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

работа с ошибками над ошибками из-за ошибок
Ребят схематично покажу. нужно сослаться на путь в сети.....беда в том, что не знаю букву диска....

Работа над ошибками
По сути, мне надо чтобы система дешифровала предложения и вроде бы вчера работала а сегодня...

Работа над ошибками
Добрый день коллеги, недавно писал одну работу(форум) для поступления на должность стажёра в...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru