#define IN 1 //внутри слова #define OUT 0 //вне слова
int main() { string s; getline(cin, s); int state = OUT; //позиция s = ' ' + s + ' '; int k = 0; //позиция начала слова for (int i = 0; i < s.size(); i++) if (s[i] == ' ') { if (state == IN && s[k] == s[i - 1]) cout << s.substr(k, i - k + 1) << endl; state = OUT; } else if (state == OUT) { k = i; state = IN; } return 0; }
Язык программирования - PascalABC.NET. Если у Вас иная версия - проверьте наличие в ней функции арккосинуса.
var a,b,c,h,S,alpha,beta,gamma,pi:real; begin Writeln('Введите длины двух сторон треугольника и угол между ними'); Read(a,b,gamma); pi:=3.14; c:=sqrt(a*a+b*b-2*a*b*cos(pi*gamma/180)); alpha:=arccos((b*b+c*c-a*a)/(2*b*c))*180/pi; beta:=180-alpha-gamma; h:=b*sin(alpha*pi/180); S:=c*h/2; Writeln('с=',c:0:4,', alpha=',alpha:0:2,', beta=',beta:0:2); Writeln('h=',h:0:4,' S=',s:0:3) end.
Пример Введите длины двух сторон треугольника и угол между ними 11.7 15.9 58 с=13.8700, alpha=45.68, beta=76.32 h=11.3707 S=78.856
#include <string>
using namespace std;
#define IN 1 //внутри слова
#define OUT 0 //вне слова
int main()
{
string s;
getline(cin, s);
int state = OUT; //позиция
s = ' ' + s + ' ';
int k = 0; //позиция начала слова
for (int i = 0; i < s.size(); i++)
if (s[i] == ' ') {
if (state == IN && s[k] == s[i - 1])
cout << s.substr(k, i - k + 1) << endl;
state = OUT;
} else if (state == OUT) {
k = i;
state = IN;
}
return 0;
}
версия - проверьте наличие в ней функции арккосинуса.
var
a,b,c,h,S,alpha,beta,gamma,pi:real;
begin
Writeln('Введите длины двух сторон треугольника и угол между ними');
Read(a,b,gamma);
pi:=3.14;
c:=sqrt(a*a+b*b-2*a*b*cos(pi*gamma/180));
alpha:=arccos((b*b+c*c-a*a)/(2*b*c))*180/pi;
beta:=180-alpha-gamma;
h:=b*sin(alpha*pi/180);
S:=c*h/2;
Writeln('с=',c:0:4,', alpha=',alpha:0:2,', beta=',beta:0:2);
Writeln('h=',h:0:4,' S=',s:0:3)
end.
Пример
Введите длины двух сторон треугольника и угол между ними
11.7 15.9 58
с=13.8700, alpha=45.68, beta=76.32
h=11.3707 S=78.856
Во вложении даны необходимые пояснения.