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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2016, 21:29   #1
LanaTsvik
Пользователь
 
Регистрация: 07.06.2016
Сообщений: 18
По умолчанию [C++]: Даны три числа. Если сумма двух наименьших из них больше третьего, найти среднее геометрическое всех трех чисел, иначе - среднее арифметическое

Помогите, пожалуйста, это моя первая программа: Заданы три числа. Если сумма двух наименьших из них больше третьего числа, найти среднее геометрическое всех трех чисел, иначе найти их среднее арифметическое.
Код:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    float a, b, c, result, result1;
    cout << "Vvedite a, b, c" << endl;
    cin>>a;
    cin>>b;
    cin>>c;
    if((a+b)<c || (a+c)<b || (c+b)<a){
        result=(float)(a+b+c)/3;
        cout << "srednee ar = ";
        }
    else
    if ((a+b)>c || (a+c)>b || (c+b)>a){
        result1=(float) ln(a*b*c)*(1/3);
        cout << "srednee geom = ";
    }
    cout<<result<<endl;
    cout<<result1<<endl;
    return 0;
}
мой код работает не правильно и еще почему-то не принимает ln.

Последний раз редактировалось Вадим Мошев; 08.10.2016 в 16:09.
LanaTsvik вне форума Ответить с цитированием
Старый 05.10.2016, 23:16   #2
Максай
Пользователь
 
Аватар для Максай
 
Регистрация: 21.07.2008
Сообщений: 40
По умолчанию

Цитата:
Сообщение от LanaTsvik Посмотреть сообщение
мой код работает не правильно и еще почему-то не принимает ln.
Давайте по порядку:
Код:
if((a+b)<c || (a+c)<b || (c+b)<a){
В условии сказано "если больше - найти геометрическое", следовательно, когда сумма двух наименьших равна третьему - нужно находить арифметическое. Значит в этом условии нужно делать проверку, используя оператор <= (меньше либо равно).
Код:
result=(float)(a+b+c)/3;
cout << "srednee ar = ";
Выводить вычисленное значение следует прямо тут, а не в конце программы.
Кроме того, приводить вычисленное значение к типу float здесь не нужно, оно и так float.
Код:
else
if ((a+b)>c || (a+c)>b || (c+b)>a){
Вторая проверка бессмыслена, ведь мы находим или арифметическое, или геометрическое, "или-или", верно? Здесь достаточно оставить просто else.
Код:
result1=(float) ln(a*b*c)*(1/3);
Вам нужна функция не ln() (которая, кстати, в стандартной библиотеке С++ называется log()), а возведение в степень 1/3 (в качестве извлечения кубического корня). Функция возведения в степень в C++ называется pow().

Вот так должен выглядеть исправленный код Вашей программы:
Код:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    float a, b, c, result, result1;
    cout << "Vvedite a, b, c" << endl;
    cin>>a;
    cin>>b;
    cin>>c;
    if((a+b)<=c || (a+c)<=b || (c+b)<=a) 
    {
        result=(a+b+c)/3;
        cout << "srednee ar = " << result << endl;
    }
    else
    {
        result1=pow( a*b*c, 1.0/3.0 );
        cout << "srednee geom = " << result1 <<endl;
    }
    return 0;
}
Максай вне форума Ответить с цитированием
Старый 08.10.2016, 15:05   #3
LanaTsvik
Пользователь
 
Регистрация: 07.06.2016
Сообщений: 18
По умолчанию

спасибо большое)) вроде как все понятно))
LanaTsvik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти среднее арифметическое и среднее геометрическое элементов массива M(9)? VBA Ramzi Помощь студентам 1 26.06.2016 20:19
Ввести файл . Найти среднее арифметическое среди значений элементов файла, принадлежащих интервалу [-5; 5]. Если среднее положител kostyan199731 Паскаль, Turbo Pascal, PascalABC.NET 0 18.03.2015 21:53
С++ Найти среднее арифметическое положительных и среднее арифметическое отрицательных чисел, минимальное по модулю число. Юрик 530 Помощь студентам 4 03.12.2011 16:26
Найти среднее арифметическое всех четных чисел Кристиш@ Паскаль, Turbo Pascal, PascalABC.NET 3 21.12.2010 18:54
Делфи.среднее геометрическое элементов массива.среднее арифметическое каждой строки матрицы Karrina Помощь студентам 0 06.12.2010 18:32