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

Как переделать код, чтобы программа принимала вещественные значения? - C++

Восстановить пароль Регистрация
 
arise
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 10
27.10.2015, 19:08     Как переделать код, чтобы программа принимала вещественные значения? #1
Как переделать код, чтобы программа принимала вещественные значения( просто при вводе 1.5 программа сходит с ума)
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "math.h"
#include <iostream>
#include "stdlib.h"
#define _USE_MATH_DEFINES
#define M_PI 3.14159265358979323846
int main()
{
    float x1(0.0), x2(0.0), x3(0.0), y1(0.0), y2(0.0), y3(0.0), a1(0.0), b1(0.0), c1(0.0), a, b, c;
    float EPSILON = 0.01;
    setlocale(LC_ALL, "Russian");
    while (1) {
        printf("\nВведите координаты треугольника:\n");
        printf("\nВведите x1:");
        scanf_s("%f", &x1);
        printf("\nВведите y1:");
        scanf_s("%f", &y1);
        printf("\nВведите x2:");
        scanf_s("%f", &x2);
        printf("\nВведите y2:");
        scanf_s("%f", &y2);
        printf("\nВведите x3:");
        scanf_s("%f", &x3);
        printf("\nВведите y3:");
        scanf_s("%f", &y3);
        a = sqrt(pow((x3 - x2), 2) + pow((y3 - y2), 2));
        b = sqrt(pow((x2 - x1), 2) + pow((y2 - y1), 2));
        c = sqrt(pow((x3 - x1), 2) + pow((y3 - y1), 2));
        a1 = ((acos((pow(b, 2) + pow(c, 2) - pow(a, 2)) / (2 * b * c))) * (180 / M_PI));
        b1 = ((acos((pow(a, 2) + pow(c, 2) - pow(b, 2)) / (2 * a * c))) * (180 / M_PI));
        c1 = ((acos((pow(a, 2) + pow(b, 2) - pow(c, 2)) / (2 * a * b))) * (180 / M_PI));
        if ((((a == 0) && (c == 0)) || ((a == 0) && (b == 0)) || ((b == 0) && (c == 0))) || (((a1 == 180) || (b1 == 180) || (c1 == 180))) || ((a1 == 0) || (b1 == 0) || (c1 == 0))) //условие проверки на прямую и точку
        {
            printf("\nКоординаты заданы не верно!\n");
        }
        else {
            if ((abs(a - b) < EPSILON) && (abs(a - c) < EPSILON) && (abs(a - b) < EPSILON) && (abs(b - c) < EPSILON)) {
                printf("\nТреугольник:\nравносторонний\n");
                printf("\n Длины сторон:\n\n а=%f,\n б=%f,\n с=%f", a, b, c);
            }
            else {
                printf("\nТреугольник: неравносторонний\n");
            }
        }
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2015, 19:08     Как переделать код, чтобы программа принимала вещественные значения?
Посмотрите здесь:

Нарисовать наибольший равносторонний треугольник, который поместится в области вывода C++
C++ Равносторонний треугольник
C++ массив. равносторонний треугольник
C++ Не определяется равносторонний треугольник по заданным координатам
C++ Классы (вывести на экран информацию о треугольнике: равносторонний, равнобедренный или разносторонний)
Равнобедренный или равносторонний треуголник C++
Равносторонний Треугольник C++
C++ Класс "Равносторонний треугольник"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
228
4 / 4 / 0
Регистрация: 28.03.2015
Сообщений: 153
11.12.2015, 18:00     Как переделать код, чтобы программа принимала вещественные значения? #2
arise, в программе вводится сначало Х потом У, если вам нужна координата 1.5 введите сначала 1 а потом 5
Yandex
Объявления
11.12.2015, 18:00     Как переделать код, чтобы программа принимала вещественные значения?
Ответ Создать тему
Опции темы

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