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

Нужно найти ошибку в коде программы по нахождению площади треугольника - C++

Восстановить пароль Регистрация
 
wankstahamsta
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 45
04.03.2013, 20:44     Нужно найти ошибку в коде программы по нахождению площади треугольника #1
Вот код:
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
#include "StdAfx.h"
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int a,b,c,p,s;
    
 
    cout <<"vvedite chisla:";
    cin >> a ; 
    cin >> b ;
    cin >> c ;
    p=(a+b+c)/2;
    double s=sqrt((1.0*(p*(p-a)*(p-b)*(p-c))));
    
    
    if ( a<b+c && b<a+c && c<b+a)
    { 
        if (a==b==c)
        {
            
            cout << "ravnostoronniy, ploshad ravna:" << s << endl;
        }
        else 
            cout << "raznostoroniy, ploshad ravna:" << s << endl;
 
        if (a==b&&a!=c)
        {
            cout << "ravnobedrenniy, ploshad ravna:" << s << endl;
        }
 
        else 
            cout << "lol" << endl;
    }
    else
        cout << "treugolnik hevosmojen" << endl;
}

Вот сама задачка :Даны произвольные числа a, b, c. Если нельзя построить треугольник с такими длинами сторон, то выдать соответствующее сообщение; если можно, то напечатать какой он: равносторонний, равнобедренный, разносторонний и вычислить его площадь по формуле Герона.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2013, 20:44     Нужно найти ошибку в коде программы по нахождению площади треугольника
Посмотрите здесь:

C++ Нужно исправить ошибку в коде!
программа по нахождению площади квадрата C++
нужно исправить ошибку, кто знает какая, напишите ее в новом коде программы C++
нужно найти ошибку в коде C++
нужно исправить ошибку в коде C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
orion_ray
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 17
04.03.2013, 20:49     Нужно найти ошибку в коде программы по нахождению площади треугольника #2
для начала переменная "р" у тебя целочисленная (int) а при делении на 2 происходит округление. так же измени переменную "s" площадь, выше она у тебя тоже объявлена только целая.
у
fuelcs
12 / 12 / 0
Регистрация: 23.01.2013
Сообщений: 143
04.03.2013, 20:56     Нужно найти ошибку в коде программы по нахождению площади треугольника #3
Цитата Сообщение от wankstahamsta Посмотреть сообщение
p=(a+b+c)/2;
может p сделать double и :
C++
1
p=(a+b+c)/2.0;
плюс
C++
1
2
3
int a,b,c,p,s;
...
double s=sqrt((1.0*(p*(p-a)*(p-b)*(p-c))));
две переменные с одним именем...
Agent Smith
40 / 40 / 9
Регистрация: 24.11.2012
Сообщений: 200
04.03.2013, 20:57     Нужно найти ошибку в коде программы по нахождению площади треугольника #4
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
Вот код:
 #include "StdAfx.h"
 #include <iostream>
 #include <math.h>
 using namespace std;
 int main()
 {
 int a,b,c,p,s;
 
 
 cout <<"vvedite chisla:";
 cin >> a ; 
 cin >> b ;
 cin >> c ;
 p=(a+b+c)/2;
 double s=sqrt((1.0*(p*(p-a)*(p-b)*(p-c))));
 
 
 if ( a<b+c && b<a+c && c<b+a)
 { 
 if (a==b==c)
 cout << "ravnostoronniy, ploshad ravna:" << s << endl;
 
 else if( (a==b && a!=c)||(a==с && a!=b) || (b==с && b!=c) )
 cout << "ravnobedrenniy, ploshad ravna:" << s << endl;
 
 else 
 cout << "raznostoronniy, ploshad ravna:" <<s<< endl;
 }
 else
 cout << "treugolnik hevosmojen" << endl;
 }
 
return 0;
}
fuelcs
12 / 12 / 0
Регистрация: 23.01.2013
Сообщений: 143
04.03.2013, 21:13     Нужно найти ошибку в коде программы по нахождению площади треугольника #5
плюс ошибки в логике

if (a==b==c)
...
else
cout << "lol" << endl;
если все стороны не равны всегда сработает:
C++
1
cout << "lol" << endl;
плюс неполное условие:
C++
1
if (a==b&&a!=c)
если b равно с и не равно а и т.д.?
wankstahamsta
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 45
04.03.2013, 21:14  [ТС]     Нужно найти ошибку в коде программы по нахождению площади треугольника #6
Цитата Сообщение от Agent Smith Посмотреть сообщение
Вот код:
пишет ошибку:
error C2371: s: переопределение; различные базовые типы
см. объявление "s"
error C2088: <<: недопустимо для class
error C2088: <<: недопустимо для class
Agent Smith
40 / 40 / 9
Регистрация: 24.11.2012
Сообщений: 200
04.03.2013, 21:17     Нужно найти ошибку в коде программы по нахождению площади треугольника #7
убери объявление s из int

Добавлено через 50 секунд
последние 2 ошибки в каких строках?
fuelcs
12 / 12 / 0
Регистрация: 23.01.2013
Сообщений: 143
04.03.2013, 21:23     Нужно найти ошибку в коде программы по нахождению площади треугольника #8
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    int a,b,c;
    cout <<"vvedite chisla:";
    cin >> a ; 
    cin >> b ;
    cin >> c ;
    double p=(a+b+c)/2.0;
    double s=sqrt((1.0*(p*(p-a)*(p-b)*(p-c))));
 
 
    if ( a<b+c && b<a+c && c<b+a)
    { 
        if (a==b&&a==c)
        {
            cout << "ravnostoronniy, ploshad ravna:" << s << endl;
        }
        if (a!=b&&a!=c&&b!=c)
        {
            cout << "raznostoroniy, ploshad ravna:" << s << endl;
        }
        if ((a==b&&a!=c)||(a==c&&a!=b)||(c==b&&c!=a))
        {
            cout << "ravnobedrenniy, ploshad ravna:" << s << endl;
        }
    }
    else
    cout << "treugolnik hevosmojen" << endl;
 
    return 0;
}
вроде так...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2013, 21:29     Нужно найти ошибку в коде программы по нахождению площади треугольника
Еще ссылки по теме:

Нужно найти ошибку в коде. С Классами C++
C++ Зацикливание программы, найти ошибку в коде
Релиз консольной программы с SNMP запросами - найти ошибку в коде C++

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

Или воспользуйтесь поиском по форуму:
wankstahamsta
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 45
04.03.2013, 21:29  [ТС]     Нужно найти ошибку в коде программы по нахождению площади треугольника #9
Цитата Сообщение от fuelcs Посмотреть сообщение
вроде так...
спасибо, все работает!

Добавлено через 1 минуту
Цитата Сообщение от Agent Smith Посмотреть сообщение
последние 2 ошибки в каких строках?
после того как убрал объявление "s" эти ошибки исчезли но почему площадь всегда была равна нулю и когда все три стороны были равны писал что равнобедренный, наверное в логике где-то была у меня ошибка
Yandex
Объявления
04.03.2013, 21:29     Нужно найти ошибку в коде программы по нахождению площади треугольника
Ответ Создать тему
Опции темы

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