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

Математическая задача - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разработать класс FileStream, инкапсулирующий работу с файлами через стандартную библиотеку Си (fopen, fclose, fprintf, fscanf, fread, fwrite и т.д.) http://www.cyberforum.ru/cpp-beginners/thread1041262.html
Разработать класс FileStream, инкапсулирующий работу с файлами через стандартную библиотеку Си (fopen, fclose, fprintf, fscanf, fread, fwrite и т.д.). Реализовать методы открытия и закрытия файла...
C++ Односвязный список. Создать список строк Организован циклический ввод данных для обработки, т.е. программа должна работать (запрашивать данные, считать и выводить результат ) до тех пор, пока пользователь не введет признак окончания работы... http://www.cyberforum.ru/cpp-beginners/thread1041243.html
программа деления чисел C++
Есть программа деления двух чисел. Резльтат записывается в файл. Помогите переделать программу, чтобы были функции пользователя. Вот код: #include <iostream> #include <windows.h> #include...
Дискретка C++
Написать программу, которая определяет, ассоциативная бинарная операция или нет. Входящими данными есть таблица операций(операции заданы на конечном множестве). Написать программу, которая...
C++ Использование механизма обмена сообщениями для управления окнами в ОС Windows http://www.cyberforum.ru/cpp-beginners/thread1041220.html
Ошибка в строке wincl.lpszClassName = szClassName; собственно почему ругается??? #include "stdafx.h" #include <windows.h> #include <stdio.h> /* кол-во строчек */ #define LINES 30
C++ сколько слагаемых должно быть в сумме 1+1/2+1/3+.+1/N, чтобы сумма оказалась больше L. L вводится пользователем , L принадлежит промежутку [1;2] Cколько слагаемых должно быть в сумме 1+1/2+1/3+...+1/N, чтобы сумма оказалась больше L. L вводится пользователем, L принадлежит промежутку . подробнее

Показать сообщение отдельно
Brain_Dead
9 / 8 / 2
Регистрация: 25.09.2013
Сообщений: 35
15.12.2013, 09:22
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Программа не правильно работает,или же она вообще не компилируется?
У меня компилируется даже странный ваш код..
Да, у меня тоже. Наверно, среда программирования другая. Поэтому я бы на всякий случай:
1) поставил double a,b,c вместо int a,b,c
2) не стал бы писать b-c < a < b+c, а написал бы так: (b-c < a) && (a < b+c)
3) всё-таки написал бы в конце _getch() и return 0.
Но дело не в этом. В алгоритме 2 грубые ошибки.
Первая - неравенство треугольника. Полностью оно выглядит так:

C++
1
if((a < b + c) && (b < a + c) && (c < a + b))
А при условии (b-c < a < b+c) можно вводить любую хрень (допустим, 1 1 5 спокойно сработает: -4 < 1 < 6), и пойдут вычисления с отрицательными числами под корнями.

Вторая ошибка такая. Допустим, условие правильное и оно сработало, сигнализировав, что это не треугольник. Блок else завершился, и дальше спокойно пошли расчёты. А программу-то надо остановить.

Помимо этого, еще в строках 15 и 18 стоят не те переменные.
В общем, код должен выглядеть примерно так:

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
#include <iostream>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
int main()
{ 
    double a,b,c;
    double q,w,e,i,o,p;
    cout << "Vvedite storoni ishodnogo treygolnika" << endl;
    cin >> a >> b >> c;
    if((a < b + c) && (b < a + c) && (c < a + b))
    {
        cout << "Eto treugolnik" << endl;
    }
    else
    {
        cout << "Eto ne treugolnik" << endl;
        return 0;
    }
 
    q = 0.5 * sqrt(2*b*b + 2*c*c - a*a);
    w = 0.5 * sqrt(2*b*b + 2*a*a - c*c);
    e = 0.5 * sqrt(2*a*a + 2*c*c - b*b);
    i = 0.5 * sqrt(2*q*q + 2*w*w - e*e);
    o = 0.5 * sqrt(2*q*q + 2*e*e - w*w);
    p = 0.5 * sqrt(2*e*e + 2*w*w - q*q);
    cout << "Medianu" << endl << i << endl << o << endl << p << endl;
 
    _getch();
    return 0;
}
З.Ы. Новички, завязывайте писать код без пробелов и скобок. Сами же будете в нём путаться.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru