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

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

Восстановить пароль Регистрация
 
zhenya.ya
1 / 1 / 0
Регистрация: 29.11.2009
Сообщений: 304
25.03.2011, 18:21     стороны треугольника #1
Есть строка, скажем "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++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Сообщений: 304
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
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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++ Найти длину 3ей стороны и площадь этого треугольника
C++ Найти расстояние от данной точки до ближайшей стороны треугольника

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

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

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