Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
zhenya.ya
1 / 1 / 0
Регистрация: 29.11.2009
Сообщений: 305
#1

стороны треугольника - C++

25.03.2011, 18:21. Просмотров 451. Ответов 6
Метки нет (Все метки)

Есть строка, скажем "789", где 7,8 и 9 - (по задумке -a,b,c) стороны треугольника. (ясно, что стороны могут быть и многозначными числами).

Пусть в данном слечае:

C++
1
2
3
4
5
chislo = atoi (buffer);
a = (chislo/100)%100;
b = (chislo/10)%10;
c = chislo%10;
if (a+b >c) ...
я могу уверенно работать с числами от 0 до 9. (т.е. могу вводить любые единичные числа, к примеру такие строки: "123","789","147" и т.д.)
Но а если я хочу одной из сторон задать длинну, например, 100. Как быть в такоем случае?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2011, 18:21     стороны треугольника
Посмотрите здесь:

C++ Найти стороны треугольника.
Найти длину третьей стороны треугольника C++
C++ Три положительных числа как стороны равностороннего треугольника
C++ Вычисления высоты и периметра равностороннего треугольника по длине стороны
C++ Определить могут ли три значения представлять стороны треугольника.
C++ Вычислить углы треугольника зная его стороны.
Найти стороны треугольника C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ailia
27 / 26 / 1
Регистрация: 27.12.2009
Сообщений: 106
25.03.2011, 18:37     стороны треугольника #2
либо задать разделитель для чисел, либо просматривать все возможные варианты сторон и выводить все возможные решения, либо задать определенную длину числа и вводить строки типа 000305541234 - здесь каждая сторона - четырехзначное число.

да,
if (a+b >c) - неправильно. треугольник можно "составить" если сумма двух его наименьших сторон больше третьей
IrineK
Заблокирован
25.03.2011, 18:40     стороны треугольника #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
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
 
int main()
{   char buffer[40];
    string side[3],cur;
    cin.getline (buffer,40); //введите числа одной строкой через пробел 
 
    int i=0;
    string all(buffer);
    istringstream ist(all);
    while(ist>>cur && i<3)
    {   side[i]=cur;
        i++;
    }
    
    for(i=0;i<3;i++)
        cout<<side[i]<<"\n";
 
    cin.sync(); cin.get();
    return 0;
}
zhenya.ya
1 / 1 / 0
Регистрация: 29.11.2009
Сообщений: 305
25.03.2011, 19:10  [ТС]     стороны треугольника #4
А не могли бы Вы пояснить что это и как работает:
C++
1
 istringstream ist(all);
IrineK
Заблокирован
25.03.2011, 19:15     стороны треугольника #5
istringstream - манипулятор строки как входного потока

http://www.cplusplus.com/reference/i...istringstream/
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
25.03.2011, 19:16     стороны треугольника #6
zhenya.ya, Создаем строковый поток и инициализируем его строкой..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2011, 19:19     стороны треугольника
Еще ссылки по теме:

C++ Найти расстояние от данной точки до ближайшей стороны треугольника
C++ Найти длину третьей стороны треугольника
C++ Найти длину третьей стороны и площадь треугольника
Найти стороны треугольника по координатам C++
C++ Найти длину третьей стороны треугольника

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

Или воспользуйтесь поиском по форуму:
IrineK
Заблокирован
25.03.2011, 19:19     стороны треугольника #7
Да, и в вашем случае в строке 8 напишите:
C++
1
int side[3],cur;
Тогда никаких atoi не понадобится.
Yandex
Объявления
25.03.2011, 19:19     стороны треугольника
Ответ Создать тему
Опции темы

Текущее время: 16:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru