На входе 0.16e-4 , на выходе 1.6e-05 Почему?

277
18 декабря 2017, 14:41

// ConsoleApplication5.cpp: определяет точку входа для консольного приложения. //

 #include "stdafx.h"
 #include <iostream>
 using namespace std;
double uravnenie_sphere;
int i;
struct cordinate {
double Radius;
double Center_x;
double Center_y;
double Center_z;
};
 struct sphere {
double proverka_Center_x;
double proverka_Center_y;
double proverka_Center_z;
 };

 int main(){
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int value;
cin >> value;
sphere *one_sphere = new sphere[value];
cordinate new_crodinate;
cin >> new_crodinate.Radius;
cin >> new_crodinate.Center_x;
cin >> new_crodinate.Center_y;
cin >> new_crodinate.Center_z;
for (i = 0; i < value; i++) {
    cin >> one_sphere[i].proverka_Center_x;
    cin >> one_sphere[i].proverka_Center_y;
    cin >> one_sphere[i].proverka_Center_z;
}
for (i = value; i>=0; i--) {
    uravnenie_sphere = ((new_crodinate.Center_x - one_sphere[i].proverka_Center_x)*(new_crodinate.Center_x - one_sphere[i].proverka_Center_x)) + ((new_crodinate.Center_y - one_sphere[i].proverka_Center_y)*(new_crodinate.Center_y - one_sphere[i].proverka_Center_y)) + ((new_crodinate.Center_z - one_sphere[i].proverka_Center_z)*(new_crodinate.Center_z - one_sphere[i].proverka_Center_z));
    if (uravnenie_sphere <= new_crodinate.Radius*new_crodinate.Radius) {
        cout << one_sphere[i].proverka_Center_x;
        cout << " ";
        cout << one_sphere[i].proverka_Center_y;
        cout << " ";
        cout << one_sphere[i].proverka_Center_z;
        cout << " ";
    }
}
return 0;

}

Answer 1

Вопрос понятен. А вот, что ниже не совсем понятно. Попробуйте исправить дополнение снизу. Отвечу на вопрос. Float и Double представляются при помощи числа умноженного на 10 в какой-то степени.

 0.16e-4 = 0.16*(10^(-4)) =(1.6*0.1)*(10^(-4))= (1.6*10*(-1))*(10^(-4))=1.6*10^(-5)=1.6e-05
READ ALSO
Как вывести double с заданным количеством символов перед запятой?

Как вывести double с заданным количеством символов перед запятой?

Мне нужно значение double перевести в строку с определенным количеством символов до и после запятойЯ использую функцию snprintf():

414
Как построить из ОПЗ бинарное дерево с++?

Как построить из ОПЗ бинарное дерево с++?

Вот пример реализации ОПЗ, возможно местами кривоКак из этого сделать бинарное дерево? У меня идея была построить двумерный массив и уже...

196
Ошибка с выделением памяти

Ошибка с выделением памяти

Есть код, который расписывает матрицу и считает суммы диагоналей(будет ниже) В коде есть функция которая задаёт размер матрицы с клавиатуры(Матрица...

245