fork(1) download
  1. #define _USE_MATH_DEFINES
  2. #include <iostream>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. int main() {
  7. double ax, ay, az, bx, by, bz, mdla, mdlb, mdlab, ccos, ugl;
  8. int gr = 0,mn=0, sc=0;
  9. cin >> ax >> ay >> az >> bx >> by >> bz;
  10. mdla = sqrt(ax*ax + ay*ay + az*az); //формула длины вектора
  11. mdlb = sqrt(bx*bx + by*by + bz*bz);
  12. mdlab = mdla*mdlb;
  13.  
  14. ccos = (ax*bx + ay*by + az*bz) / mdlab; // формула косинус угла между векторами
  15. ugl = acos(ccos)*180/M_PI;// получим угол по формуле перевода радиан в градусы
  16. gr = (int)ugl;
  17. ugl -= gr;
  18. while (ugl < 0.1)ugl *= 10;
  19.  
  20. mn =(int)( ugl /(1.0/60.0) );
  21. ugl -= mn*(1.0 / 60.0);
  22. while (ugl < 0.1)ugl *= 10;
  23.  
  24. sc = (int)(ugl/(1.0/60));
  25.  
  26. cout << gr << "° " << mn << "' " << sc << "''";
  27. return 0;
  28. }
Success #stdin #stdout 0s 3472KB
stdin
1 61 12 1 11 1
stdout
7° 17' 55''