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

Ошибка "Too many types in declaration" - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
милашка
Сообщений: n/a
14.01.2012, 18:30     Ошибка "Too many types in declaration" #1
Помогите разобраться в чем ошибка! Задача: 2 Багаж пассажира характеризуется количеством вещей (целый тип) и общим весом вещей (вещественный тип). Дан список из сведений о багаже 10 пассажиров. Найти число пассажиров, имеющих более двух вещей, и число пассажиров, количество вещей которых превосходит среднее число вещей по всему списку! Вот код программы(который мне помогли сделать):
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
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <fstream>
 
struct SMan
{
    int C;
    double W;
}
 
void F(int& a, int& b, SMan* g, int n)
{
    a=b=0;
    double p=0;
    const int size=2;
    for (int i=0; i<n; i++)
    {
        p+=g[i].C;
        if (g[i].C>size) a++;
    }
    if (p>0)
    {
        p/=n;
        for (int i=0; i<n; i++)
        {
            if (static_cast<double>(g[i].C)>p) b++;
        }
    }
}
Но после компиляции Borland выбает вот такую ошибку: Too many types in declaration! И она находиться в строке void F(int& a, int& b, SMan* g, int n)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BreakPointMAN
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 15
14.01.2012, 19:10     Ошибка "Too many types in declaration" #2
Точку с запятой после определения структуры поставь:
C++
1
2
3
4
5
struct SMan
{
int C;
double W;
}; // вот здесь
А где, собственно, функция main? Программа-то программой, но самой главной функции нет.
TheBits
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 73
14.01.2012, 19:32     Ошибка "Too many types in declaration" #3
Можно узнать что у Вас за вуз? Такие социальные задания дают…

После определения структуры ставиться точка с запятой ";".
Т.е.:
C++
1
2
3
4
5
struct SMan
{
   int C;
   double W;
};
Не разу не сталкивался с Borland C++ v5.02, но могу позволить себе догадываться что ошибка с числом аргументов.
Проверьте правильность прототипа функции, определения и вызова.

PS: Наверное логичнне будет const int size = 2; определить через #define. И осмысленые названия переменных будут самодокументировать код. Мелочь, а приятно.
BreakPointMAN
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 15
14.01.2012, 20:06     Ошибка "Too many types in declaration" #4
Цитата Сообщение от TheBits
PS: Наверное логичнне будет const int size = 2; определить через #define.
А вот этого делать не надо. Как говорится, не учите детей дурному...
TheBits
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 73
14.01.2012, 20:43     Ошибка "Too many types in declaration" #5
Цитата Сообщение от BreakPointMAN
Цитата Сообщение от TheBits
PS: Наверное логичнне будет const int size = 2; определить через #define.
А вот этого делать не надо. Как говорится, не учите детей дурному...
Будем искать сколько пассажиров имеют количество вещей багажа более чем 3. Для этого надо будет изменить только одно значение в header файле. Чего в этом дурного?
BreakPointMAN
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 15
14.01.2012, 21:19     Ошибка "Too many types in declaration" #6
Если в выражении
Код
const int size = 2;
мы заменим двоечку на троечку, мы получим нужный результат, так?
Тогда зачем использовать директиву препроцессора [bold]#define[/bold] для определения именованных констант, если то же самое можно сделать с помощью механизма [bold]const[/bold], который создавался как альтернатива уже устаревшему способу с использованием препроцессора.
милашка
Сообщений: n/a
14.01.2012, 22:21     Ошибка "Too many types in declaration" #7
Я все сделала как вы скачали но все равно не компилируеться! А вот еще вопрос после какой строчки нужны main() и return(0)! Если не лень отредактируйте мой код! Заранее благодарна
BreakPointMAN
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 15
14.01.2012, 22:28     Ошибка "Too many types in declaration" #8
[bold]Милашка[/bold], ты вообще хоть какое-нибудь представление о программировании вообще имеешь?! Я уже не говорю про C++...
...
<вырезано внутренним цензором автора поста>
милашка
Сообщений: n/a
14.01.2012, 22:32     Ошибка "Too many types in declaration" #9
Ну ты представь! 3 месяца изучаю С++! Приезжает учитель на 1 неделю, толкает свою методичку и вперед! Да и книг то нормальных у нас не продают и в библиотеки нет! Так что ито не из-за разгелдяйства!
милашка
Сообщений: n/a
14.01.2012, 22:33     Ошибка "Too many types in declaration" #10
Для вас это пару пустяков! А я не знаю как учиться в нашем филиале! Помоги пожалуйста!
TheBits
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 73
15.01.2012, 01:15     Ошибка "Too many types in declaration" #11
Цитата Сообщение от милашка
Я все сделала как вы скачали но все равно не компилируеться! А вот еще вопрос после какой строчки нужны main() и return(0)! Если не лень отредактируйте мой код! Заранее благодарна
Покажи пожалуйста весь код. Из того что есть ничего сказать нельзя.

Ответ на вопрос о main и return тоже будет после того как Вы покажите [bold]весь[/bold] код.
милашка
Сообщений: n/a
15.01.2012, 07:27     Ошибка "Too many types in declaration" #12
Условие:Багаж пассажира характеризуется количеством вещей (целый тип) и общим ве¬сом вещей (вещественный тип). Дан список из сведений о багаже 10 пассажиров.
Найти число пассажиров, имеющих более двух вещей, и число пассажиров, количество вещей которых превосходит среднее число вещей по всему списку.

Вот код:
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
#include <conio.h> 
#include <iostream.h>
#include <stdio.h>
#include <fstream>
 
struct SMan
{
 
    int C;
    double W;
};
    main()
int F(int& a, int& b, SMan* g, int n)
 
{
 
    a=b=0;
    double p=0;
    const int size=2;
    for (int i=0; i<n; i++)
    {
        p+=g[i].C;
        if (g[i].C>size) a++;
    }
    if (p>0)
    {
        p/=n;
        for (int i=0; i<n; i++)
        {
            if (static_cast<double>(g[i].C)>p) b++;
        }
    }
    return(0);
}
Ошибка после компиляции: Declaration syntax error в строке int F(int& a, int& b, SMan* g, int n)
Silver
Сообщений: n/a
15.01.2012, 11:28     Ошибка "Too many types in declaration" #13
Ну естественно компилятор будет ругаться!!!!!
Кто так пишет:
main()
int F(int& a, int& b, SMan* g, int n)
{....
Все в одной куче!!!!
main() - это функция запуска проги.
Нужно что-то типа
main()
{
return 0; // по-моему без указания возвращаемого значения тип = int.
}
int F(int& a, int& b, SMan* g, int n)
{....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2012, 11:58     Ошибка "Too many types in declaration"
Еще ссылки по теме:

C++ Вылетает ошибка: "E2238 Multiple declaration for defoult"
C++ Ошибка: Too many types is declaration
C++ Qt ошибки "qualified-id declaration before '(' token" и "expected '}' at end of input"

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

Или воспользуйтесь поиском по форуму:
Silver
Сообщений: n/a
15.01.2012, 11:58     Ошибка "Too many types in declaration" #14
Эх! Давненько я не брал в руки шашку!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int F(int& a, int& b, SMan* g, int n)
{
a=b=0;
double p=0;
const int size=2;
for (int i=0; i<n; i++)
{
p+=g[i].C;
[quote]Для чего объявлять [bold]p[/bold] double ????? [/quote] 
if (g[i].C>size) a++;
}
if(p>0)
{
p/=n;
for (int i=0; i<n; i++)
{
if (static_cast<double>(g[i].C)>p) b++;
[quote]Это, что за изыски??? Объяви int p и напиши просто if(g[i].C>p) b++;
[/quote] 
}
}
return(0);
}
Ну и осталось только вызвать функцию из main()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
main()
{
 int a; // количество пассажиров с количеством мест багажа 2 и более
 int b; // количество пассажиров с количеством мест багажа, 
        //превышаюшим средний показатель
 SMan g[10]; // кол-во пассажиров = 10
 g[0].C = 1; // заполним массив структур количеством багажа у каждого пассажира
 g[1].C = 3;
 ..........
 g[9].C = 2; // последний пассажир!!!! не писать g[10]-будет ошибка!
 // а вот сейчас можно и функцию вызывать
 F(*a, *b, g, 10); // для 10 пассажиров
 // после выполнения этой функции в переменных [bold]a[/bold] и [bold]b[/bold] 
 // получаются нужные нам значения и вывести их на экран:
 printf("A=%d B=%d",a,b);
 return 0;
}
Yandex
Объявления
15.01.2012, 11:58     Ошибка "Too many types in declaration"
Ответ Создать тему
Опции темы

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