Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 83, средняя оценка - 4.90
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
#1

Определить, существует ли треугольник со сторонами a, b, c - C++

19.11.2009, 09:22. Просмотров 11201. Ответов 28
Метки нет (Все метки)

1) поределить существует ли треугольник со сторонами a,b,c, и если существует,то является ли он равносторонним,равнобедренным или разносторонним
2) вычислить r=p!где P третье число делящееся на 9 в диапазоне от 20 до 100
3)вывести на экран третье,пятое и шестое число,кратное 3и 7 в диапазоне от 120 до 270
4)задан массив Z(n) целых чисел.удалить из массива наибольший и наименьший элементы.в преобразованом массиве найти среднее арифметическое тени наибольших элементов.
5)задан массив z(k) целых чисел.поределить в массиве количество простых двухзначных чисел.если таких чисел больше двух,удалить их из массива.проверить,изменился ли максимальный элемент массива
заранее благодарен за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2009, 09:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Определить, существует ли треугольник со сторонами a, b, c (C++):

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

Определить, существует ли треугольник с заданными сторонами
Даны три натуральных числа A, B, C. Определите, существует ли треугольник с...

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

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

Определить, является ли треугольник со сторонами a,b,c равносторонним
Определить, является ли треугольник со сторонами a,b,c равносторонним

Определить, является ли треугольник со сторонами a, b, c равносторонним
1.Определить, является ли треугольник со сторонами a, b, c равносторонним.

28
mikhail2704
39 / 39 / 10
Регистрация: 18.11.2009
Сообщений: 115
19.11.2009, 10:04 #2
1. Сравнить а+в и с. Если а+в>=с то треугольник не существует. Если а=в=с - равносторонний. Если а=в или а=с или в=с - равнобедренный
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
19.11.2009, 10:13 #3
Цитата Сообщение от mikhail2704 Посмотреть сообщение
Сравнить а+в и с. Если а+в>=с то треугольник не существует
Не все так просто. Во-первых, наверное наоборот (если a+b<=c) то треугольник не существует. Во вторых нужно сделать три подобные проверки (для всех сторон).
0
Paulie
Айхрень...
306 / 174 / 7
Регистрация: 02.06.2009
Сообщений: 1,078
19.11.2009, 10:21 #4
Цитата Сообщение от valeriikozlov Посмотреть сообщение
наверное наоборот (если a+b<=c)
опять же - нет, что мешает быть треугольнику 30...30...120?
a+b+c = 180 - тогда существует! в ином случае нет (ну если говорить, конечно, о геометрии на плоскости)...

Добавлено через 4 минуты
ё моё, имелось ввиду стороны a, b & c? а я подумал углы... ну эээ, извиняюсь..
0
M128K145
Эксперт JavaЭксперт С++
8320 / 3540 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
19.11.2009, 10:39 #5
В топике http://www.cyberforum.ru/cpp-beginners/thread51306.html приводилось правильное решение
C++
1
2
3
4
bool Triangle(int a, int b, int c)
{
    return ((a + b > c) && (b + c > a) && (c + a > b));
}
проверка на вид треугольника
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int Type(int a, int b, int c)
{
    if(a == b == c)
        return 0;
    else
        if(a==b || c == b || a == c)
            return 1;
    return 2;
}
int main()
{
...
    if(Triangle(a, b, c))
        std::cout<<(Type(a, b, c) == 0) ? "равносторонний" :
                    (Type(a, b, c) == 1) ? "равнобедренный" : "разносторонний";
    else
        std::cout<<"Это не треугольник";
...
    return 0;
}
1
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
19.11.2009, 16:46  [ТС] #6
Господа,можете посоветовать литературу по с++ для таких как я,знаний по с практически 0...
0
ISergey
Maniac
Эксперт С++
1408 / 919 / 148
Регистрация: 02.01.2009
Сообщений: 2,747
Записей в блоге: 1
19.11.2009, 16:49 #7
Препод грузит на первом курсе а лекции не одной небыло
тачнее вас небыло на лекциях..
Цитата Сообщение от Grand1 Посмотреть сообщение
Господа,можете посоветовать литературу по с++
http://www.cyberforum.ru/cpp/thread6623.html
0
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
19.11.2009, 16:56  [ТС] #8
Цитата Сообщение от ISergey Посмотреть сообщение
тачнее вас небыло на лекциях..

http://www.cyberforum.ru/cpp/thread6623.html
Нет просто тот препод который должен был быть уволился и по настоящее время его ни кто не заменял
0
ser4ega
27 / 27 / 12
Регистрация: 15.11.2009
Сообщений: 147
19.11.2009, 17:40 #9
Цитата Сообщение от Grand1 Посмотреть сообщение
вычислить r=p!где P третье число делящееся на 9 в диапазоне от 20 до 100
По-русски говоря, вычислить факториал 45?

Добавлено через 17 минут
И сразу вопрос, кто знает, где можно храниить факториал 45?

Добавлено через 24 секунды
В какой тип ОНО влезет?

Добавлено через 1 минуту
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int i,p;
    unsigned int r=0;
    for(i=20;i<100;i++) {
                        if (i%9==0)r++;
                         if(r==3) {p=i; break;}}//poisk p
    printf("%d\n",p);//takoe vot p 
    r=1; 
    for(i=2;i<=p;i++) r*=i;//uvy, ne pomestitsya
    printf("\n%d\n",r);
    system("PAUSE");    
  
}
вот то, что есть

Добавлено через 1 минуту
Цитата Сообщение от Grand1 Посмотреть сообщение
вывести на экран третье,пятое и шестое число,кратное 3и 7 в диапазоне от 120 до 270
тоесть, кратные 21?

Добавлено через 4 минуты
Цитата Сообщение от Grand1 Посмотреть сообщение
в преобразованом массиве найти среднее арифметическое тени наибольших элементов
Что это?
1
Андрейка
421 / 225 / 87
Регистрация: 25.03.2009
Сообщений: 744
19.11.2009, 18:09 #10
ну факториал 45 это длинная арифметика вроде была такая задача 500! погугли её , про среднее арифметическое это видимо ср арифм 3 наибольших элементов , алгоритм в лоб отсортировать сложить первые 3 и поделить на 3 .
0
M128K145
Эксперт JavaЭксперт С++
8320 / 3540 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
19.11.2009, 18:47 #11
для проверки
45!
119 622 220 865 480 194 561 963 161 495 657 715 064 383 733 760 000 000 000
0
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
20.11.2009, 05:00  [ТС] #12
Тени-это то есть семи
0
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
20.11.2009, 09:33  [ТС] #13
Вот еще он озадачил сказал так как не успиваем сделать до следующего четверга 3 лабы и дал еще два задания...Короче нагрузил по полной
6)Задан массив Х(n) целых чисел. Удалить из массива все элементы,
большие среднего арифметического значения. Определить в массиве
количество простых и совершенных чисел до и после удаления.
7)Вычислить среднее арифметическое и среднее геометрическое нечетных
чисел, кратных 7 в диапазоне от 101 до 213.
Только не говорите что я полный дебил ,я просто всего этого не знаю
0
Андрейка
421 / 225 / 87
Регистрация: 25.03.2009
Сообщений: 744
20.11.2009, 13:09 #14
Grand1,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <numeric>
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    std::vector<int>vec(arr,arr+sizeof(arr)/sizeof(*arr));
    std::cout<<"исходный массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    vec.erase(std::remove_if(vec.begin(),vec.end(),std::bind2nd(std::greater<int>(),std::accumulate(vec.begin(),vec.end(),0)/vec.size())),vec.end());
    std::cout<<"новый массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    system("pause");
    return 0;
}
Добавлено через 37 минут
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
48
49
50
51
52
53
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <numeric>
 
struct sover : public std::unary_function<int,bool> 
{
  bool operator() (int number)
  {
      int sum = 0 ;
      for (size_t i = 1 ; i < number ; i++)
      {
          if (number%i==0)
          {
              sum=sum+i;
          }
      }
      if (sum==number) return true;
      else
          return false;
  }
 
};
 
struct prost : public std::unary_function<int,bool>
{
    bool operator() (int number)
    {
        for (int i = 2 ; i < number ; i++)
            if (number % i == 0 ) return false;
        return true;
    }
};
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int arr[] = {2,3,4,5,6,7,8,9,10};
    std::vector<int>vec(arr,arr+sizeof(arr)/sizeof(*arr));
    std::cout<<"исходный массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    std::cout<<"количество совершенных чисел"<<' '<<std::count_if(vec.begin(),vec.end(),sover())<<std::endl;
    std::cout<<"количество простые чисел"<<' '<<std::count_if(vec.begin(),vec.end(),prost())<<std::endl;
    vec.erase(std::remove_if(vec.begin(),vec.end(),std::bind2nd(std::greater<int>(),std::accumulate(vec.begin(),vec.end(),0)/vec.size())),vec.end());
    std::cout<<"новый массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    std::cout<<"количество совершенных чисел"<<' '<<std::count_if(vec.begin(),vec.end(),sover())<<std::endl;
    std::cout<<"количество простые чисел"<<' '<<std::count_if(vec.begin(),vec.end(),prost())<<std::endl;
    system("pause");
    return 0;
}
1
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
21.11.2009, 08:45  [ТС] #15
охринеть! вот мне интересно чтоб такие проги писать сколько времени нужно потратить на изучение C++ по книжкам...
0
Wolf1851
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 1
21.11.2009, 17:24 #16
Пожалуйста помогите решить задания:
1.Найти натуральное число от n до k с максимальной суммой делителей
2.Дано натуральное число n. Получить его каноническое разложение (разложение на простые множители).
3.Дано натуральное k <=2109. Вывести k цифру последовательности 011212201220200112... Последовательность строится следующим образом: сначала 0, затем повторяем: уже написанную часть приписываем справа с заменой 0 на 1, 1 на 2, 2 на 0.
Всё организовать через цикл.
0
lolopolosko
1354 / 313 / 6
Регистрация: 21.11.2009
Сообщений: 992
21.11.2009, 17:32 #17
Советую тебе книгу "Язык програмирования С++ (учебный курс)" Автор С.В. Глушаков , С.В.Смирнов

ДЛЯ новичков

Добавлено через 3 минуты
Цитата Сообщение от Андрейка Посмотреть сообщение
Grand1,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <numeric>
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    std::vector<int>vec(arr,arr+sizeof(arr)/sizeof(*arr));
    std::cout<<"исходный массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    vec.erase(std::remove_if(vec.begin(),vec.end(),std::bind2nd(std::greater<int>(),std::accumulate(vec.begin(),vec.end(),0)/vec.size())),vec.end());
    std::cout<<"новый массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    system("pause");
    return 0;
}
Добавлено через 37 минут
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
48
49
50
51
52
53
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <numeric>
 
struct sover : public std::unary_function<int,bool> 
{
  bool operator() (int number)
  {
      int sum = 0 ;
      for (size_t i = 1 ; i < number ; i++)
      {
          if (number%i==0)
          {
              sum=sum+i;
          }
      }
      if (sum==number) return true;
      else
          return false;
  }
 
};
 
struct prost : public std::unary_function<int,bool>
{
    bool operator() (int number)
    {
        for (int i = 2 ; i < number ; i++)
            if (number % i == 0 ) return false;
        return true;
    }
};
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int arr[] = {2,3,4,5,6,7,8,9,10};
    std::vector<int>vec(arr,arr+sizeof(arr)/sizeof(*arr));
    std::cout<<"исходный массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    std::cout<<"количество совершенных чисел"<<' '<<std::count_if(vec.begin(),vec.end(),sover())<<std::endl;
    std::cout<<"количество простые чисел"<<' '<<std::count_if(vec.begin(),vec.end(),prost())<<std::endl;
    vec.erase(std::remove_if(vec.begin(),vec.end(),std::bind2nd(std::greater<int>(),std::accumulate(vec.begin(),vec.end(),0)/vec.size())),vec.end());
    std::cout<<"новый массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    std::cout<<"количество совершенных чисел"<<' '<<std::count_if(vec.begin(),vec.end(),sover())<<std::endl;
    std::cout<<"количество простые чисел"<<' '<<std::count_if(vec.begin(),vec.end(),prost())<<std::endl;
    system("pause");
    return 0;
}
А не проще дописать
C++
1
using namespace std;
чтобы было понятно новичку...и не входило в заблуждения
0
M128K145
Эксперт JavaЭксперт С++
8320 / 3540 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
21.11.2009, 19:17 #18
lolopolosko, новичку наоборот так будет проще запутаться. Пусть с самого начала привыкает писать правильно
0
Андрейка
421 / 225 / 87
Регистрация: 25.03.2009
Сообщений: 744
22.11.2009, 00:43 #19
Grand1, ниче в коде сложного нет как дойдёшь до STL поймёшь о чем тут
0
Neys
-1 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 14
22.11.2009, 14:56 #20
Столкнулся с этой же задачей. Смог сделать только так, чтоб массив был const. Как можно переделать код, чтобы длина массива задавалась с клавиатуры? Я не смог разобраться, как здесь это сделать с помощью указателя. В других программах получалось, а здесь не смог справиться.

Добавлено через пару минут
Кстати, задача на средние значения диапазона.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL,"RUSSIAN");
long long int sum=0, mul=1, itt=0;
    for(int i = 101; i <= 213; i++)
    {
        if( !(i%7) && i%2 )
        {
            sum+=i;
            mul*=i;
            itt++;
        }
    }
cout << "Cреднее арифметическое нечетных чисел, кратных 7 в диапазоне от 101 до 213 равно" << sum/itt 
     << ", среднее геометрическое " << pow((float)mul,(float)1/itt) << "." << endl << endl;
system("pause");
return 0;
}
А вот в задаче с простыми и совершенными числами я так и не сообразил, как организовать ввод длины массива с клавиатуры, чтоб потом всё работало.
0
22.11.2009, 14:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2009, 14:56
Привет! Вот еще темы с решениями:

Определить существует ли ромб с задаными сторонами a,b,c,d (без операторов ввода и ввывода,в режиме отладчика)
Написать в с++

Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник
2. Даны два угла треугольника (в градусах ). Определить существует ли такой...

Даны два угла треугольника (в градусах). Определить существует ли такой треугольник
10 Даны два угла треугольника (в градусах). Определить существует ли такой...

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


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

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

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