С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 185
#1

Работа над ошибками - C++

01.10.2012, 16:06. Просмотров 537. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа над ошибками (C++):

задача С++ масивы работа над ошибками - C++
#include &lt;vector&gt; #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;numeric&gt; #include &lt;stdlib.h&gt; inline bool IsZero(int in) ...

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

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

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

Работа над векторами! - C++
Даны вещественные числа a1, a2, ... an. Поменять местами наибольший и наименьший элементы. Помогите пожалуйста!

Работа над множествами,STL - C++
Собственно есть задача: Дан некий текст.Нужно в алфавитном порядке напечатать все гласные буквы входящие в этот текст более двух раз и...

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

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

Добавлено через 6 минут
abs() для double совпадает с fabs().
Но мой компилятор сразу же отреагировал на изменение. И всё заработало
Если можете, подскажите ещё с булевским типом.
Можно ли по другому получить ответ от условия?
0
alsav22
5428 / 4823 / 442
Регистрация: 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
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,200
Завершенные тесты: 1
01.10.2012, 16:46 #7
Цитата Сообщение от alsav22 Посмотреть сообщение
abs() для double совпадает с fabs().
Действительно, не знал. Но всё равно это не сишная функция, и в таком случае надо math.h менять на cmath.
0
alsav22
5428 / 4823 / 442
Регистрация: 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 / 1
Регистрация: 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
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 17:24 #10
Так что изменили, после чего заработало? abs() на fabs() ?
0
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 185
01.10.2012, 17:44  [ТС] #11
Цитата Сообщение от alsav22 Посмотреть сообщение
Так что изменили, после чего заработало? abs() на fabs() ?
Именно. Не знаю с чем это связано, так как сам нуб
0
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,200
Завершенные тесты: 1
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
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2012, 18:19 #13
Цитата Сообщение от Somebody Посмотреть сообщение
В Студии много чего может быть...
Согласен, но mingv тоже ошибки не выдаёт.
0
Миниатюры
Работа над ошибками  
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,200
Завершенные тесты: 1
01.10.2012, 19:04 #14
Цитата Сообщение от alsav22 Посмотреть сообщение
Согласен, но mingv тоже ошибки не выдаёт.
Странно...
0
Миниатюры
Работа над ошибками  
alsav22
5428 / 4823 / 442
Регистрация: 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
Миниатюры
Работа над ошибками  
01.10.2012, 19:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2012, 19:39
Привет! Вот еще темы с ответами:

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

Работа над переменной в программе и подпрограмме - C++
Доброго времени суток. Возник вопрос во время выполнения курсовой. В программе имеется переменная (flag), которая показывает...

Работа с элементами над/под побочной диагональю - C++
Доброго времени суток. Имеется задание: Дана квадратная вещественная матрица. Определить отдельно сумму S1 элементов, расположенных...

Разобраться с ошибками - C++
что нужно исправить #include &lt;iostream.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; int main () { struct strc { ...


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

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

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