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

Синтаксическая ошибка в функции - C++

Восстановить пароль Регистрация
 
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 155
26.10.2012, 18:13     Синтаксическая ошибка в функции #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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include "stdafx.h"
#include <iostream>
using namespace std;
 
///////////////////////////////////////////////////////////////////////
class Distance
{
private:
    int feet;
    float inches;
public:
    Distance()
     {
          feet = 0;
          inches = 0;
     }
     void getdist() //Ввод длин
     {
          cout << "Введите футы: "; cin >> feet;
          cout << "Введите дюймы: "; cin >> inches;
     }
     void showdist() const //Вывод результата
     {
          cout << feet << "\'-" << inches << "\"";
     }
     friend Distance add_dist(int n);
     void average(int n, Distance& dd);
};
Distance dist [ 100 ];
///////////////////////////////////////////////////////////////////////
 
int main ()
{
     system("chcp 1251 >nul");
  
     int n = 0;
     char ch;
     
     do //Ввод длин
     {
          cout << "Введите длину номер " << n + 1 << endl;
          dist [ n++ ].getdist();
          cout << "Продолжить (y/n): "; cin >> ch;
     }
     while(ch != 'n');
 
     for(int j = 0; j < n; j++) //Вывод длин
     {
          cout << "\nДлина номер " << j + 1 << " : ";
          dist [j].showdist();
     }
 
    Distance temp;
    temp = add_dist(n);
    average(n, temp);
 
     cout << "Среднее значение длины: "; //Вывод средней длины
     temp.showdist();
 
     system("pause");
    return 0;
}
Distance add_dist(int n) //Сложение всех длин
{
     Distance temp;
     for(int j=0 ; j<n ; j++)
     {
         temp.feet += dist[j].feet;
         temp.inches += dist[j].inches;
     }
     return temp;
}
void average(int n, Distance& dd) //Высчитывание средней длины
{
     dd.inches += dd.feet*12;
     float total = dd.inches / n;
     static_cast<int>(total);
 
     dd.feet=0; dd.inches=0.0F;
     for(int j=total ; j>0 ; j--)
     {
          dd.inches++;
          for(int j=0 ; j>12 ; j--)
          {
               dd.feet++;
          }
     }
}
Ошибки тут:
http://s017.***********/i417/1210/2d/b8d933498e9b.png
Все они в функции average()
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 18:13     Синтаксическая ошибка в функции
Посмотрите здесь:

Синтаксическая ошибка C++
Синтаксическая ошибка!)) C++
C++ Наверное синтаксическая ошибка
C++ Синтаксическая ошибка
C++ синтаксическая ошибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
26.10.2012, 18:19     Синтаксическая ошибка в функции #2
имя класса забыли:
C++
1
void Distance::average(int n, Distance& dd)
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
26.10.2012, 18:20     Синтаксическая ошибка в функции #3
C++
1
2
3
void Distance::average(int n, Distance& dd) {
    //Реализация
}
Добавлено через 42 секунды
Цитата Сообщение от FliXis Посмотреть сообщение
static_cast<int>(total);
Извините, что, по-вашему, сделает этот оператор?
Croessmah
26.10.2012, 18:21
  #4

Не по теме:

Цитата Сообщение от Кот Ангенс Посмотреть сообщение
Извините, что, по-вашему, сделает этот оператор?
Я так думаю, что задумка такая:
привести total к типу int =)

FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 155
26.10.2012, 18:27  [ТС]     Синтаксическая ошибка в функции #5
Теперь жалуется на 58ю - эверейдж не определен.
C++
1
average(n, temp);
Извините, что, по-вашему, сделает этот оператор?
Хм..вроде должен привести float total к int

Шесть часов уже делаю это задание, госпади, я сейчас свихнусь.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
26.10.2012, 18:35     Синтаксическая ошибка в функции #6
ну если учитывать, что в коде только один экземпляр класса Distance, Тогда так:
C++
1
temp.average(n, temp);
Добавлено через 3 минуты
C++
1
type-id rezult=static_cast <type-id> (expression)
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 155
26.10.2012, 18:37  [ТС]     Синтаксическая ошибка в функции #7
Вот черт. Уже месяц думал, что
C++
1
static_cast<int>(total);
тоже самое, что и
C++
1
total=static_cast<int>(total);
Думал по аналогии с записью типа
C++
1
total += total
но среди типов. А оказывается все два типа этих записей вообще не работают без еще одной переменной, на которой всегда хотелось сэкономить. =)

Теперь все работает, только счетчик футов глючит в эверейдже, но это наверно я там что-то накосячил, сейчас подумаю. Спасибо всем большое!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2012, 15:45     Синтаксическая ошибка в функции
Еще ссылки по теме:

C++ Синтаксическая ошибка
C++ синтаксическая ошибка
Первая программа, синтаксическая ошибка C++

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.10.2012, 15:45     Синтаксическая ошибка в функции #8
Цитата Сообщение от FliXis Посмотреть сообщение
Вот черт. Уже месяц думал, что
C++
1
static_cast<int>(total);
тоже самое, что и
C++
1
total=static_cast<int>(total);
Даже если бы это было так, то это не сработало бы. Сами посудите.
C++
1
static_cast<int>(total);
приведёт total к типу int и *вернёт* приведённое значение как временный объект. Присвоив его к total таким образом
C++
1
total=static_cast<int>(total);
получим, что результат приведения снова неявно приведётся к типу total, ведь оператор приведения типа не меняет фактический тип переменной, он берёт значение переменной, приводит его к нужному типу (если может) и возвращает эту копию нужного типа в качестве результата своего выполнения.
Yandex
Объявления
30.10.2012, 15:45     Синтаксическая ошибка в функции
Ответ Создать тему
Опции темы

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