Загрузка данных


Ошибка LNK2019 возникает из-за строки doTask();: функция объявлена (void doTask();), но нигде не определена. В вашем коде задачи уже выполняются в main, поэтому удалите и объявление, и вызов doTask().

#define NOMINMAX

#include <iostream>
#include <vector>
#include <iomanip>
#include <algorithm>
#include <limits>
#include <windows.h>
#include <shellapi.h>

using namespace std;

// Считает нули в столбцах с индексами 0, 2, 4...
vector<int> countZerosInOddColumns(
    const vector<vector<int>>& matrix,
    int n
) {
    vector<int> result;

    for (int j = 0; j < n; j += 2) {
        int count = 0;

        for (int i = 0; i < n; ++i) {
            if (matrix[i][j] == 0) {
                ++count;
            }
        }

        result.push_back(count);
    }

    return result;
}

// Находит минимум в левой области и максимум в правой
pair<int, int> findMinMaxRegions(
    const vector<vector<int>>& matrix,
    int n
) {
    int minVal = numeric_limits<int>::max();
    int maxVal = numeric_limits<int>::min();

    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (j <= i && j <= n - 1 - i) {
                minVal = min(minVal, matrix[i][j]);
            }

            if (j >= i && j >= n - 1 - i) {
                maxVal = max(maxVal, matrix[i][j]);
            }
        }
    }

    return {minVal, maxVal};
}

int main() {
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);

    int n;
    cout << "--- Анализатор матрицы ---\n";
    cout << "Введите размер матрицы (N): ";

    if (!(cin >> n) || n <= 0) {
        cerr << "Размер матрицы должен быть положительным числом.\n";
        return 1;
    }

    vector<vector<int>> matrix(n, vector<int>(n));

    cout << "Введите элементы матрицы:\n";
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            cin >> matrix[i][j];
        }
    }

    cout << "\nВаша матрица:\n";
    for (const auto& row : matrix) {
        for (int val : row) {
            cout << setw(4) << val;
        }
        cout << '\n';
    }

    vector<int> zeros = countZerosInOddColumns(matrix, n);
    cout << "\n[Задача 1] Нули в столбцах с индексами 0, 2, 4...: ";
    for (int count : zeros) {
        cout << count << ' ';
    }
    cout << '\n';

    pair<int, int> result = findMinMaxRegions(matrix, n);
    cout << "[Задача 2] Минимум в левой области: " << result.first << '\n';
    cout << "          Максимум в правой области: " << result.second << '\n';

    ShellExecuteW(
        nullptr,
        L"open",
        L"\\\\vc.miet.ru\\space\\Profiles\\8251094\\Downloads\\12421.jpg",
        nullptr,
        nullptr,
        SW_SHOWNORMAL
    );

    return 0;
}


Если doTask() нужна по условию, оставьте вызов, но добавьте определение функции — например, void doTask() { /* код задачи */ }.