@maybe_a_rat_fucker

Как исправить ссылку на неразрешенный внешний символ?

Здравствуйте, не могу привязать к main файлу еще один. Ниже представл код для main файла, доп.файла и header файла.
Main файл
#include <iostream>
#include <ctime>
#include <fstream> 
#include "choice_of_method.h"

using namespace std;

void quicksort(int* array, int size_of_array) {
	int id_last_element = size_of_array - 1;
	int id_fist_element = 0;
	int flag = 1;
	int pivot = 0;
	cout << size_of_array << endl;
	while (id_fist_element != id_last_element)
	{
		if (flag % 2 != 0)
		{
			if (array[pivot] > array[id_last_element])
			{
				cout << array[pivot] << " Ìåíÿåòñÿ ñ " << array[id_last_element] << endl;
				swap(array[pivot], array[id_last_element]);
				pivot = id_last_element;
				cout << "Array: ";
				for (int k = 0; k < size_of_array; k++)
				{
					cout << array[k] << " ";
				}
				cout << endl;
				id_fist_element++;
				flag++;
			}
			else {
				id_last_element--;
			}
		}
		else if (flag % 2 == 0)
		{
			if (array[pivot] < array[id_fist_element])
			{
				cout << array[pivot] << " Ìåíÿåòñÿ ñ " << array[id_fist_element] << endl;
				swap(array[pivot], array[id_fist_element]);
				pivot = id_fist_element;
				for (int k = 0; k < size_of_array; k++)
				{
					cout << array[k] << " ";
				}
				cout << endl;
				id_last_element--;
				flag++;
			}
			else {
				id_fist_element++;
			}
		}
	}
}


int main() {
	setlocale(LC_ALL, "Rus");

	int array_size; // Ðàçìåð ìàññèâà
	cout << "ÂÍÈÌÀÍÈÅ! Ðàçìåð ìàññèâà íå äîëæåí ïðåâûøàòü 40" << endl;
	cout << "Ââåäèòå ðàçìåð ìàññèâà: ";
	cin >> array_size;

	if (array_size > 40) {
		cout << "Ââîäèìîå çíà÷åíèå ìàññèâà ïðåâûøàåò 40" << endl;
		return 0;
	}


	int* array_1{new int[array_size] }; // Îáúÿâëåíèå äèíàìè÷åñêîãî ìàññèâà


	// 1 ÈÇ 3 ÌÅÒÎÄÎÂ ÇÀÏÎËÍÅÍÈß ÌÀÑÑÈÂÀ(ÏÅÐÅÍÅÑÒÈ Â ÎÒÄÅËÜÍÛÉ ÔÀÉË)

	int flag;
	cin >> flag;

	switch (flag)
	{
	case 1:
		keyboard_method(array_1, array_size);
		break;

	case 2:
		random_method(array_1, array_size);
		break;

	case 3:		
		read_from_file_method(array_1, array_size);
		break;

	default:
		break;
	}
	
	// Äàëëå ïðîèñõîäèò quicksort

	quicksort(array_1, array_size);

	delete[] array_1;

	return 0;
}


Доп.файл
#include <iostream>
#include <ctime>
#include <fstream> 
#include "choice_of_method.h"

using namespace std;

void keyboard_method(int* array, int array_size) {
	int element;
	cout << "Ýëåìåíò ìàññèâà íå äîëæåí áûòü íèæå 0" << endl;

	for (int i = 0; i < array_size; i++) // Çàïîëíåíèå ìàññèâà ââîäèìûìè çíà÷åíèÿìè
	{
		int element;
		cin >> element;

		if (element < 0) {
			cout << "Âû ââåëè íåäîñòóïíîå çíà÷åíèå ýëåìåíòà ìàññèâà";
			break;
		}
		else {
			array[i] = element;
		}
	}

	for (int j = 0; j < array_size; j++)
	{
		cout << array[j] << endl;
	}

}


void random_method(int* array, int array_size) {
	srand(time(NULL));
	int max_num;
	cout << "Ââåäèòå ìàêñèìàëüíîå çíà÷åíèå ýëåìåíòà(Íå äîëæíî ïðåâûøàòü 99): ";
	cin >> max_num;

	if (max_num > 99 || max_num < 0) {
		cout << "Âû ââåëè íåäîñòóïíîå çíà÷åíèå ýëåìåíòà ìàññèâà";
	}
	else {
		for (int i = 0; i < array_size; i++)
		{
			array[i] = rand() % max_num;
		}
		for (int j = 0; j < array_size; j++)
		{
			cout << array[j] << endl;
		}
	}
}

void read_from_file_method(int* array,int array_size) {

	string file_name;
	cout << "Óêàæèòå èìÿ ôàéëà è ôîðìàò: ";
	cin >> file_name;

	ofstream File(file_name);
	cout << "Çàïîëíèòå ôàéë" << endl;
	for (int i = 0; i < array_size; i++)
	{
		int element;
		cin >> element;
		File << element << " ";
		//array[i] = element;
	}
	File.close();
	/*
	File.open(file_name);
	if (File) 
	{
		for (int i = 0; i < array_size; i++)
		{
			File >> array[i];
			cout << array[i];
		}
	}
	else 
	{
		cout << "Ôàéëà íå ñóùåñòâóåò.";
		EXIT_FAILURE;
	}
	File.close();
	*/
}


Header файл
#pragma once
void keyboard_method(int* array, int array_size);
void random_method(int* array, int array_size);
void read_from_file_method(int* array, int array_size);
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
@wntkys
Здравствуйте, У меня получилось собрать ваш пример при помощи gcc .\main.cpp .\choice_of_method.cpp. Не знаю собираете ли вы через среду разработки или через консоль, но выглядит так, будто вы забыли указать второй файл при компиляции
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы