Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2014, 18:14   #11
andrey_snegovik
 
Регистрация: 06.04.2014
Сообщений: 7
По умолчанию

ROD,
Цитата:
Кстати, у меня компилятор ни на что не ругается. (Компилятор mingw32, IDE QtCreator 3.0.82)
В main.cpp поменяйте .cpp на .h. Должно быть так:
Код:
#include "recursion.h"
#include "massiv.h"
#include "primer.h"
Цитата:
Во-первых перенести глобальные переменные в .h файл.
Если их просто перенести в massiv.h, то ошибка всё равно такая же будет. http://prntscr.com/38pbqo

Цитата:
Во-вторых не использовать глобальные переменные (если без них можно обойтись).
В данном проекте, я не знаю, как от них избавиться.

Цитата:
В-третьих глобальные константы можно задефайнить или заменить на перечисления. (в .h файле, причем если они реально глобальные то я бы их вынес вообще в отдельный .h файл).
А если это не константы?
andrey_snegovik вне форума Ответить с цитированием
Старый 10.04.2014, 18:28   #12
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
А если это не константы?
То у вас будет компилятор ругаться на
Код:
int A[L][M];


Цитата:
В main.cpp поменяйте .cpp на .h. Должно быть так:
Ну тогда все верно, ибо L, M, A, p не объявлены ни в одном включаемом файле.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 10.04.2014 в 18:32.
ROD вне форума Ответить с цитированием
Старый 10.04.2014, 20:19   #13
andrey_snegovik
 
Регистрация: 06.04.2014
Сообщений: 7
По умолчанию

Никак у меня не получается одну программу разделить на файлы:
  • massiv.h (прототипы функций)
  • massiv.cpp (сами функции)
  • main.cpp (основная программа)

Код рабочей программы, которую нужно разделить на модули.
Код:
#include <iostream>
#include <stdlib.h>

#define L 7
#define M 7
#define E 7

using namespace std;

void input_matrix (int, int, int);
void print_array (int, int);
int count (int, int, int);

void input_matrix (int m[][E], int rows, int cols) {
    for (int i=0; i<rows; i++) {
        for (int j=0; j<cols; j++) {
            m[i][j]=rand()%10;
        }
    }
}

void print_array (int a[], int length) {
                   for (int i=0; i<length; i++) {
                cout<<' '<<a[i];
            }
        cout<<endl;
   }

int count (int a[], int p, int length) {
    int k=0;
    for (int i=0; i<length; i++) {
        if (a[i]<p) k++;
    }
    return k;
}

int main () {
    int y, o;
    int A[L][M];
    input_matrix (A, L, M);
    cout<<"Матрица A"<<endl;
    for (int i=0; i<L; i++){
        print_array(A[i], L);
    }
    cout<<endl;
    cout<<"Число P = ";
    cin>>y;
    cout<<endl;
    cout<<"Количество элементов, меньших числа "<<y<<" в строках:"<<endl;
    for (int i=0; i<L; i++) {
      o=count(A[i],y,L);
      cout<<"Строка "<<i<<" = "<<o<<endl;
    }
}

Последний раз редактировалось andrey_snegovik; 10.04.2014 в 21:06.
andrey_snegovik вне форума Ответить с цитированием
Старый 10.04.2014, 23:56   #14
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Код:
void input_matrix (int, int, int);
void input_matrix (int m[][E], int rows, int cols)
Прототип отличается от реализации.

Аналогично для

Код:
void print_array (int, int);
int count (int, int, int);
У вас в прототипах первый аргумент - int, а не массив int`ов (т.е. ошибка в прототипе)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 11.04.2014 в 00:00.
ROD вне форума Ответить с цитированием
Старый 11.04.2014, 17:30   #15
andrey_snegovik
 
Регистрация: 06.04.2014
Сообщений: 7
По умолчанию

ROD, спасибо огромное! Сделал прототип таким же, как и реализация, и всё запустилось!

Последний раз редактировалось andrey_snegovik; 11.04.2014 в 20:01.
andrey_snegovik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ : multiple definition of main AnryFlame Помощь студентам 2 16.10.2012 18:00
Ошибка error C2374: 'n' : redefinition; multiple initialization inmanika Помощь студентам 5 13.12.2011 01:22
Ошибка: "Multiple-step operation generated errors. Check each status value" artemavd Общие вопросы Delphi 4 23.10.2011 08:07
multiple definition jojahti Общие вопросы C/C++ 9 20.08.2009 16:54
Qbasic ошибка "duplicate definition" Костя КС Помощь студентам 5 26.05.2009 22:23