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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2009, 19:37   #1
innaa639
Пользователь
 
Аватар для innaa639
 
Регистрация: 13.11.2008
Сообщений: 80
Восклицание Задачка на С++ про треугольник. Олимпиадная

Ввести три целых числа и определить могут ли эти числа быть длинами сторон треугольника, при этом определить какой это может быть треугольник :
1. равнобедренный
2. равносторонний
3. прямоугольный
4. остроугольный
5. тупоугольный
innaa639 вне форума Ответить с цитированием
Старый 20.10.2009, 19:38   #2
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Олимпиадная???
Слабовато...
Levsha100 вне форума Ответить с цитированием
Старый 20.10.2009, 19:42   #3
innaa639
Пользователь
 
Аватар для innaa639
 
Регистрация: 13.11.2008
Сообщений: 80
По умолчанию

Ну для нас и это трудная, а сделать нужно срочно и на завтра...я не могу.Ты поможешь?
innaa639 вне форума Ответить с цитированием
Старый 20.10.2009, 19:49   #4
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

Хах..да тут олимпиадой и не пахнет. Если знаешь геометрию.

Для начала проверяешь, если сумма двух сторон меньше третьей, то такого треугольника не существует.

Если это условие прошло, то

Если две стороны равны, то треугольник равнобедренный.
Если три стороны равны, то треугольник равносторонний.
Если квадрат одной стороны равен сумме квадратов двух оставшихся. то треугольник прямоугольник.
А остальные через отношения сторон. Синус косинус..
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 20.10.2009, 20:00   #5
innaa639
Пользователь
 
Аватар для innaa639
 
Регистрация: 13.11.2008
Сообщений: 80
Восклицание

Так в этом то вся и загвоздка,геометрию то я знаю,а вот программку именно написать это проблема
innaa639 вне форума Ответить с цитированием
Старый 20.10.2009, 20:00   #6
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Вот мы смеемся, а у девушки действительно отборочный тур на пробный этап олимпиады потока по спортивному программированию Была бы олимпиадная - было бы указано приоритеты и условия вывода. А то не понятно, что и как выводить. Ведь треугольник может быть одновременно равнобедренным и равносторонним, равнобедренным и прямоугольным, остроугольным и равносторонним, и так далее. Если приоритеты так и стоят - то не пойму, почему равносторонний ниже равнобедренного. Обычно ведь большее множество ставят ниже приритетом.
LeBron вне форума Ответить с цитированием
Старый 20.10.2009, 20:04   #7
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

А какая в общем то разница? Пусть создаст 5 функций..и если треугольник удовлетворяет условию, то выводим название.

Может вывести например "равнобедренный прямоугольный". И вот все. =)

У тебя есть уже какие наработки? Или вобще ничего?
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 20.10.2009, 20:08   #8
innaa639
Пользователь
 
Аватар для innaa639
 
Регистрация: 13.11.2008
Сообщений: 80
Вопрос

ну это условие какое дали,и дали его недавно и сделать нужно срочно,поэтому узнавать не как было все точно,если не указано,то как сделаешь. А наработок нету, в голову ниче не лезет
innaa639 вне форума Ответить с цитированием
Старый 20.10.2009, 20:18   #9
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

Вот образно будет так. Тебе остается написать 4 функции. Проверки на остальные свойства. Равнобедренный ли, прямоугольный..и так далее. Ну раз с геометрией у тебя хорошо, то это будет не сложно.

Код:
#include <stdio.h>

int prov1(int a,int b,int c){
    if(a+b<c){return 0;}
    if(a+c<b){return 0;}
    if(b+c<a){return 0;}
    return 1;
    }

int main(){
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    if(prov1(a,b,c)==0){return 0;}
    else{
         if(ravnobedr(a,b,c)==1){printf("Равнобедренный ");}
         else{
              if(ravnostoron(a,b,c)==1){printf("Равносторонний ");
              }
         if(pryamo()==1){printf("Прямоугольный");}
         if(typo()==1){printf("Тупоугольный");}
         if(ostro()==1){printf("Остроугольный");}
         }
    }
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 20.10.2009, 20:40   #10
innaa639
Пользователь
 
Аватар для innaa639
 
Регистрация: 13.11.2008
Сообщений: 80
По умолчанию

Македон,допиши пожалуйста и проверь(если сможешь),а то у меня на этом компьютере не с++.Ответь в личку
innaa639 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
олимпиадная задачка... Dansergyr Помощь студентам 12 30.11.2009 08:55
Олимпиадная задачка. И проблемка. forsaken66 Общие вопросы C/C++ 2 07.10.2009 12:50
Олимпиадная задачка... Dr.MagoR Помощь студентам 6 25.04.2009 14:20
C++ олимпиадная задачка LastDragon Помощь студентам 1 19.06.2008 23:04