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

multiple definition of perebor(int) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
xGamer
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 13
30.05.2011, 16:06     multiple definition of perebor(int) #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
//ГґГіГ*êöèÿ ïåðåáèðГ*ГҐГІ Г·ГЁГ±Г«Г*
//ГЁ Г*Г* ГЄГ*æäîå ÷èñëî äåéñòâóåò ГґГіГ*êöèåé proverka
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include "proverka.cpp"
 
#define c 100
 
int perebor(int chislo)
{
int j,a=chislo;
int sum=0;
for (;a<c;a++)
    {
                          
     for (j=0;j<a;j++)
         {
          if (proverka(a,j)==1)
             {
          sum+=sum;
                if (sum==a)        
            break;
             }
         }
    //ГЄГ*æäîå ÷èñëî ïåðåäГ*ВёГ¬ ГґГіГ*êöè proverka
     }
return a;
//puts("HAIMEHbIIIEE 4NCJIO");
//printf("%d",a);
}
друзья!
уже час парюсь..пишется ошибка
multiple definition of `perebor(int)'
first defined here
ld returned 1 exit status
C:\C++\Makefile.win [Build Error] [laba4.exe] Error 1

прогаю на дев сипипи..дайте пожалуйста совет.как этоисправить?
пытался на экран выводить не в майне а непосредственно в переборе...тоже самое
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 16:06     multiple definition of perebor(int)
Посмотрите здесь:

[Linker error] undefined reference to `sterling(int, int, int)' C++
C++ Написать функцию типа Beaty(int iA, int iB, int *pc)
Функции float average(int arrray[],int from,int to) C++
int main() и int _tmain(int argc, _TCHAR* argv[]) C++
C++ multiple definition of
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
30.05.2011, 16:09     multiple definition of perebor(int) #2
Если я не ошибаюсь, perebor у вас объявлен несколько раз... мало кода
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
30.05.2011, 16:09     multiple definition of perebor(int) #3
а где main ? и proverka ? можно код посмотреть полный?
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
30.05.2011, 16:10     multiple definition of perebor(int) #4
Не видно функции main(), выложите весь исходник?
xGamer
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 13
30.05.2011, 16:11  [ТС]     multiple definition of perebor(int) #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//ГЌГ*éòè Г*Г*èìåГ*ГјГёГҐГҐ ñîâåðøåГ*Г*îå ÷èñëî, áîëüøåå ââåäåГ*Г*îãî Г·ГЁГ±Г«Г* 
 
#include <cstdlib>
#include "iostream"
#include <stdio.h>
#include "perebor.cpp"
 
int main(void) // ââîäèì ÷èñëî
           //ïåðåäГ*ВёГ¬ ГЅГІГ® ÷èñëî ГґГіГ*êöèè perebor
{
    int chislo;
    puts("BBeDNTE 4ICJIO");
    scanf("%d",&chislo);
    perebor(chislo);
    puts("HAIMEHbIIIEE 4NCJIO");
    printf("%d",perebor(chislo));
    system("PAUSE");
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//ÔóГ*êöèÿ ïðîâåðÿåò ÷èñëî Г*Г* ñîâåðøåГ*Г*îñòü.
 
#include <cstdlib>
#include <iostream>
#include <stdio.h>
 
inline int proverka(int a,int j)
{
    //âûçâГ*Гў ГґГіГ*êöèþ perebor ГЁ ГЄГ*æäîå ÷èñëî ГЁГ§ ýòîé ГґГіГ*êöèè ïðîâåðÿåò Г*Г* ñîâåðøåГ*Г*îñòü
    //åñëè ÷èñëî ñîâåðøåГ*Г*Г®. ГІГ® ГЅГІГ* ГґГіГ*êöèÿ ïåðåäГ*ВёГІ ГЅГІГ® ÷èñëî ГґГіГ*êöèè vibor
    if (a%j==0)
    return 1;
    else
    return 0;
}
на vibor не обращайте внимания
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
30.05.2011, 16:20     multiple definition of perebor(int) #6
запихай это все в один cpp файл, и посмотри как будет вести себя...
xGamer
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 13
30.05.2011, 16:24  [ТС]     multiple definition of perebor(int) #7
в задании.нужно сделать в разных файлах
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
30.05.2011, 16:32     multiple definition of perebor(int) #8
потом раскидаешь, будет ли работать в одном, думаю ошибка именно в инклудах, потому как компилятор думает что у тебя много функций perebor(), если я не ошибаюсь
xGamer
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 13
30.05.2011, 16:36  [ТС]     multiple definition of perebor(int) #9
я пытаюсь в майне в принт эфе сделать перебор(а)..пишет, что а не декларирован...хотя а-это и есть число которое мне нужно найти.и оно отлично определено в функции перебор.
сделал в одном файле..чёто не проканало
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.05.2011, 16:37     multiple definition of perebor(int) #10
xGamer, НЕ стоит инклудить cpp файл.
xGamer
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 13
30.05.2011, 16:41  [ТС]     multiple definition of perebor(int) #11
без инклуда компилятор требует декларировать
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
30.05.2011, 16:45     multiple definition of perebor(int) #12
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
#include <cstdlib>
#include "iostream"
#include <stdio.h>
 
int main(void) // вводим число
           //передаём это число функции perebor
{
    int chislo;
    puts("BBeDNTE 4ICJIO");
    scanf("%d",&chislo);
    perebor(chislo);
    puts("HAIMEHbIIIEE 4NCJIO");
    printf("%d",perebor(chislo));
    system("PAUSE");
}
 
 
inline int proverka(int a,int j)
{
    //вызвав функцию perebor и каждое число из этой функции проверяет на совершенность
    //если число совершенно. то эта функция передаёт это число функции vibor
    if (a%j==0)
    return 1;
    else
    return 0;
}
 
#define c 100
 
int perebor(int chislo)
{
int j,a=chislo;
int sum=0;
for (;a<c;a++)
    {
                          
     for (j=0;j<a;j++)
         {
          if (proverka(a,j)==1)
             {
          sum+=sum;
                if (sum==a)        
            break;
             }
         }
    //каждое число передаём функци proverka
     }
return a;
//puts("HAIMEHbIIIEE 4NCJIO");
//printf("%d",a);
}
имел ввиду как то так, стандартные инклуды, main, функции.
если компилятор ругаеться что не знает функций, перед мейном укажи их, но не описывай
xGamer
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 13
30.05.2011, 17:03  [ТС]     multiple definition of perebor(int) #13
не получается.
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
30.05.2011, 18:28     multiple definition of perebor(int) #14
слушай, опиши на пальцах чего прога делает твоя, может помогу исправить, а то я читал читал код твой но так и не понял, что за проверка на совершенность, и чего у тебя в цилке 0 делиться по модулю на 0 зачем это, не понятно, напиши чего сделать то хош...
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
30.05.2011, 18:34     multiple definition of perebor(int) #15
Цитата Сообщение от xGamer Посмотреть сообщение
без инклуда компилятор требует декларировать
И всё-таки инклуд perebor.cpp убери, а вместо него добавь прототип функции:
C
1
int perebor(int chislo);
xGamer
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 13
30.05.2011, 19:14  [ТС]     multiple definition of perebor(int) #16
в общем.программа ищет совершенное число, которое наиболее близко к введённому..и больше его...тоесть следущее совершенное число после введённого..вот я в майне ввожу..передаю это число функции перебор..там я перебираю числа, проверяя их на совершенность...там наверно у меня ошибка с суммой.....sum.там надо наверно после каждого неподходящего числа очищать эту переменную

Добавлено через 1 минуту
Цитата Сообщение от m1Rr0r Посмотреть сообщение
слушай, опиши на пальцах чего прога делает твоя, может помогу исправить, а то я читал читал код твой но так и не понял, что за проверка на совершенность, и чего у тебя в цилке 0 делиться по модулю на 0 зачем это, не понятно, напиши чего сделать то хош...
я сделал как ты говориш и ругается компилчтор!
пишет что не декларированная функция...я же уже говорил что не канает

странно.но после третьего нажатия на кнопку посотроить.ушла декларация

Добавлено через 15 минут
теперь в общем файлик билдится...но!.я ввожу число...меркер переводится на сл строку.потом вылезает окошко..мол программа не работает...успевает вывестись НАИМЕНЬШЕЕ ЧИСЛО
потом начинают работать 2 остальные функции...так что что то в них там...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2011, 19:59     multiple definition of perebor(int)
Еще ссылки по теме:

C++ Напишите функцию f(int& m1, int& m0, int N), которая воз- вращает первую и последнюю цифры двузначного натурального числа N
C++ multiple definition
C++ Как избежать ошибки "Multiple definition"

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

Или воспользуйтесь поиском по форуму:
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
30.05.2011, 19:59     multiple definition of perebor(int) #17
как я понял вы инклудили cpp файл в нем же самом(это означает что текст скопирован два раза, а если честно хз, может и бесконечное число раз)...
естественно он не потребует декларации, но и тел функции две теперь,

grizlik78
И всё-таки инклуд perebor.cpp убери, а вместо него добавь прототип функции:
C++
1
int perebor(int chislo);
Yandex
Объявления
30.05.2011, 19:59     multiple definition of perebor(int)
Ответ Создать тему
Опции темы

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