Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 10

Если возможно построить прямоугольный треугольник с заданными сторонами, вывести площадь, если нет - периметр

20.06.2017, 16:58. Показов 2378. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны 3 стороны: a, b и с - натуральные. Если можно построить прямоугольный треугольник с этими сторонами, то вывести площадь этого треугольник, если нет - сумму сторон.
Я вроде сделал рабочий код, но не проходить 3 теста из 20:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
 
int main()
{
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    int a, b, c;
    fin >> a >> b >> c;
    double s = 0;
    if (a*a == b*b + c*c || b*b == a*a + c*c || c*c == a*a + b*b)
    {
        double p = (a + b + c) / 2.0;
        s = sqrt(p*(p - a)*(p - b)*(p - c));
    }
    else
    {
        s = a + b + c;
    }
    fout << s;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.06.2017, 16:58
Ответы с готовыми решениями:

Определить, существует ли прямоугольный треугольник со сторонами x,y,z. Если – да, вычислить его площадь.
Определить, существует ли прямоугольный треугольник со сторонами x,y,z. Если – да, вычислить его площадь. Помогите пожалуйста

Если треугольник со сторонами a, b, с является равнобедренным, найти его площадь, в противном случае – периметр.
1)Если треугольник со сторонами a, b, с является равнобедренным, найти его площадь, в противном случае – периметр. 2)Дан массив из...

Даны три числа. Существует ли треугольник со данными сторонами, если существует, то найти его периметр и площадь
Даны три числа. Определить, существует ли треугольник со сторонами длиной a, b, c и, если существует, то найти его периметр и площадь.

17
 Аватар для Akello2
7 / 7 / 10
Регистрация: 22.12.2016
Сообщений: 105
20.06.2017, 17:20
polcraz, попробуй, только это при условии что С - гипотенуза.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    int a, b, c;
    fin >> a >> b >> c;
    if(c*c == a*a + b*b)
    {
        int s = a*b/2;
        cout << " S = " << s;
    }
    else
    {
        int p = a+b+c;
        cout << "сумма сторон = " << p;
    }
}
а оно читает
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 10
20.06.2017, 17:48  [ТС]
Я наверное просто что-то не понимаю, вот условие: https://drive.google.com/open?... 1dkN1ptc3c
0
10 / 8 / 6
Регистрация: 14.05.2017
Сообщений: 58
20.06.2017, 17:58
polcraz, в конце программы добавьте строчки, закрывающие файлы.
C++
1
2
fin.close();
fout.close();
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 10
20.06.2017, 18:05  [ТС]
Добавил, ничего не поменялось (странно если бы заработало )
0
10 / 8 / 6
Регистрация: 14.05.2017
Сообщений: 58
20.06.2017, 19:38
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
 
int main()
{
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    int a, b, c;
    fin >> a >> b >> c;
    double s = 0;
    
    if (a*a == b*b + c*c || b*b == a*a + c*c || c*c == a*a + b*b)
    {
        double p = (a + b + c) / 2.0;
        s = sqrt(p*(p - a)*(p - b)*(p - c));
        fout << s;
    }
    else
    {
        s = a + b + c;
        fout << s;
    }
    
}
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 10
20.06.2017, 19:50  [ТС]
Все равно 3 теста не проходит
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
20.06.2017, 19:58
del
0
10 / 8 / 6
Регистрация: 14.05.2017
Сообщений: 58
20.06.2017, 20:08
Тогда не знаю
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
20.06.2017, 20:16
Это значит, что не до конца прочитал задание и удалил сообщение. Но из школы помню, что площадь прямоугольного треугольника 1/2*a*b, где a и b катеты треугольника. Гипотенуза, соответственно самая большая сторона. Может найти ее сначала, а потом проверить равенство c*c == a*a + b*b, да и площадь потом по нормальному вычислить.
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 10
20.06.2017, 20:42  [ТС]
Даже с таким кодом не работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
 
int main()
{
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    int a, b, c;
    fin >> a >> b >> c;
    double s = 0;
    if (a*a == b*b + c*c || b*b == a*a + c*c || c*c == a*a + b*b)
    {
        if (a > b && a > c)
        {
            s = 1.0 / 2.0 * b * c;
            fout << s;
        }
        else if (b > c && b > a)
        {
            s = 1.0 / 2.0 * a * c;
            fout << s;
        }
        else if (c > a && c > b)
        {
            s = 1.0 / 2.0 * a * b;
            fout << s;
        }
    }
    else
    {
        s = a + b + c;
        fout << s;
    }
    fin.close();
    fout.close();
    return 0;
}
И на заметку: 1/2*a*b = (a*b)/2
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 10
20.06.2017, 20:49  [ТС]
Вот картинка к тестами, ОК - все хорошо, WA - wrong answer (неправильный ответ)
Миниатюры
Если возможно построить прямоугольный треугольник с заданными сторонами, вывести площадь, если нет - периметр  
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
20.06.2017, 20:57
13 строка на кой ляд.
1. Находим наибольший из a,b,c Например, наибольший с.
2. Тогда должно выполняться равенство c*c = a*a + b*b,
3. если оно выполняется считаем площадь,
4. если нет сумму.
Есть и другие признаки прямоугольного треугольника, которые, возможно, тоже стоит поюзать.
Цитата Сообщение от polcraz Посмотреть сообщение
И на заметку: 1/2*a*b = (a*b)/2
А за гениальность следующий раз по репе дам.
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 10
20.06.2017, 21:08  [ТС]
Меня это достало уже, что не пишу все равно те 3 теста не проходят ((
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
 
int main()
{
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    int a, b, c;
    fin >> a >> b >> c;
    double s = 0;
    int k1 = 0;
    int k2 = 0;
    int gp = 0;
    double res = 0;
    if (a > b && a > c)
    {
        gp = a;
        k1 = b;
        k2 = c;
    }
    else if (b > c && b > a)
    {
        gp = b;
        k1 = a;
        k2 = c;
    }
    else if (c > a && c > b)
    {
        gp = c;
        k1 = a;
        k2 = b;
    }
    if (gp*gp == k1*k1 + k2*k2) 
    {
        res = 1.0 / 2.0 * k1 * k2;
    }
    else
    {
        res = a + b + c;
    }
    fout << res;
    fin.close();
    fout.close();
    return 0;
}
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
20.06.2017, 21:26
polcraz, скиньте ссылку где эта шняга.
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 10
20.06.2017, 21:33  [ТС]
https://drive.google.com/open?... 1dkN1ptc3c
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
20.06.2017, 21:47
Тестировать где? С такими условиями в лет должно пролетать, может с переменными что не то.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
20.06.2017, 21:55
polcraz, картинки загружайте прямо на форум.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2017, 21:55
Помогаю со студенческими работами здесь

Если можно построить треугольник по данным трем отрезкам, то вычислить его периметр и площадь
в Visual Basic Ветвления 2.Даны длины трех отрезков a, b, c. Если можно построить треугольник по этим трем отрезкам, то вычислить...

Если можно построить треугольник по трем данным отрезкам, то вычислить его периметр и площадь
Даны длины трех отрезков a, b, c. Если можно построить треугольник по этим трем отрезкам, то вычислить его периметр и площадь.

Если возможно построить тупоугольный треугольник - вычислить его площадь
Введите три числа. Если они могут быть длинами сторон разностороннего тупоугольного треугольника, выведите их в порядке возрастания и...

Даны три положительных числа. Определить, можно ли построить треугольник со сторонами, длины которых равны этим числам. Если возможно, то ответить на
var a,b,c:real; begin write(a,b,c); readln; writeln('ââåäèòå ðàäèóñ òðèóãîëüíèêà') à+â&gt;c â+ñ&gt;a à+ñ&gt;â end. помогите...

Если треугольник с заданными сторонами существует, то указать его тип
Даны действительные положительные числа x, y, z. a) Выяснить, существует ли треугольник с длинами сторон x, y, z; b) Если треугольник...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru