C++
Напишите программу, которая вводит координаты двух точек на числовой оси и выводит расстояние между ними. Входные данные В первой строке вводятся через пробел координаты первой точки (сначала x -координата, потом y -координата), во второй строке в том же порядке – координаты второй точки. Все координаты – вещественные числа. Выходные данные Программа должна вывести одно число: расстояние между точками с тремя знаками в дробной части.
Примеры
входные данные 1. 1. 2. 2.
выходные данные 1.414
Answers & Comments
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int main() {
vector<float> coordinates;
string a;
getline(cin, a);
string buffer;
for(int i = 0; i<a.length(); ++i) {
if(a[i]!=' ') {
buffer+=a[i];
} if(a[i]==' '||i==a.length()-1) {
if(buffer[buffer.length()-1]=='.') {
buffer+="0";
}
float num = stof(buffer);
coordinates.push_back(num);
buffer = "";
}
}
if(coordinates.size()!=4) {
cout << "wrong data. example: 1.1 2.2 3.3 4.4";
}
float result;
int temp1, temp2, temp3, temp4;
temp1 = coordinates[0]-coordinates[2];
temp2 = coordinates[1]-coordinates[3];
temp1 = temp1 * temp1;
temp2 = temp2 * temp2;
temp3 = temp1 + temp2;
result = sqrt(temp3);
cout << result;
}