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

Выявление ошибки - C++

Восстановить пароль Регистрация
 
Beverly
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 51
07.11.2013, 20:14     Выявление ошибки #1
Помогите, пожалуйста, исправить программу (в функции treug в качестве параметра нужно использовать указатель *p), затем его использовать при вызове функции.
Заранее большое спасибо.
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 <iostream.h>
#include <stdio.h>  //vvod-vyvod
#include <math.h>
void treug(float a, float b, float c, int *p)
{
(*p)=0;
if ((a+b>c) || (b+c>a) || (c+a>b))
{(*p)=1;
  printf ("Treug sush."); }
}
 
float area (float a, float b, float c)             //naidem ploshad treug.
{
float p = (a+b+c)/2;
return   sqrt(p*(p-a)*(p-b)*(p-c));  //vozvrach. sqrt
}
 
 
int main ()
{
     float a, b, c, d;   //vvod dannyh
    printf ("A");
     scanf ("%f", &a);
     printf ("B");
     scanf ("%f", &b);
     printf ("C");
     scanf ("%f", &c);
     printf ("D");
     scanf ("%f", &d);
 
     treug(1.0,2.0,a);
     treug(1.0,2.0,b);
         treug(1.0,2.0,b);
          if (a &&  treug(2.0,2.5,b) && treug(2.5,d,c))  //proverka sush.treh treug-ov
       cout << "area = " << (area(1.0,2.0,a)+area(2.0,2.5,b)+area(2.5,d,c)) << endl;    //nahozd.ploshadi 5-tyugolnika, kak summy plos.treh treug-ov
   else printf ("Postroit nelzya!");
   return 0;
   }
 Комментарий модератора 
Пользуйтесь тегами форматирования кода.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
07.11.2013, 20:35     Выявление ошибки #2
C++
1
2
3
4
5
6
7
8
9
10
void treug(float a, float b, float c, int *p);
//...
float a, b, c, d; //vvod dannyh
int x = 0;
treug(a,b,c,&x);
//...
void treug(float a, float b, float c, int *p)
{
  //...
}
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
07.11.2013, 21:40     Выявление ошибки #3
у вас в описании функции есть указатель, а в вызове функции его нет и по умолчанию он не предусмотрен
Beverly
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 51
07.11.2013, 21:45  [ТС]     Выявление ошибки #4
Помогите исправить код, пожалуйста.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
07.11.2013, 21:51     Выявление ошибки #5
что ваша программа должна делать и зачем ей этот указатель? )
Beverly
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 51
07.11.2013, 21:53  [ТС]     Выявление ошибки #6
Вот честно: не знаю.
Программа и без него прекрасно работает. Но учитель сказал, что нужно использовать указатель.
Программа должна находить площадь пятиугольника.
У нас две функции (существует ли треугольник и площадь треугольника)
Меня конкретно синтаксис волнует
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
07.11.2013, 22:06     Выявление ошибки #7
указатель у вас используется в качестве bool, т.е. если треугольник существует то он возвращает 1 (или true), но было бы проще делать через bool treug(ваши аргументы);

ну если синтаксис то тут ошибка, я не понимаю что это вообще такое...
C++
1
[quote="Beverly;5301672"]if (treug(1.0,2.0,a); treug(1.0,2.0,b); treug(1.0,2.0,c); ) && (treug(2.0,2.5,b);treug(2.0,2.5,a);treug(2.0,2.5,c); ) && (treug(2.5,d,c); treug(2.5,d,b); treug(2.5,d,a); )[/quote]
здесь надо по умолчанию выставить ему 0
C++
1
void treug(float a, float b, float c, int *p=0)
ещё 1 переменную добавьте в прогу т.к. у вас только стороны a,b,c,d какбы по ним пятиугольник не построить
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
13.11.2013, 08:39     Выявление ошибки #8
а текст ошибки полностью можно?
dima55501
 Аватар для dima55501
29 / 33 / 6
Регистрация: 14.07.2013
Сообщений: 146
13.11.2013, 08:46     Выявление ошибки #9
Функция void treug ничего не возвращает. Ее нельзя добавить в конструкцию if. Попробуй поменять тип возвращаемого значения.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 21:33     Выявление ошибки
Еще ссылки по теме:

простая задача на выявление двух самых больших чисел из ряда C++
C++ Выявление кода .exe приложения
Ошибки C++

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

Или воспользуйтесь поиском по форуму:
Beverly
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 51
13.11.2013, 21:33  [ТС]     Выявление ошибки #10
not an allowed type
Помогите исправить ошибку, пожалуйста
Yandex
Объявления
13.11.2013, 21:33     Выявление ошибки
Ответ Создать тему
Опции темы

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