Загрузка...

Нужна помощь с кодом по заданию

Тема в разделе C/C++ создана пользователем Evreu2pro 15 апр 2022. 208 просмотров

  1. Evreu2pro
    Evreu2pro Автор темы 15 апр 2022 Заблокирован(а) 97 14 окт 2021
    Задана матрица размером NxM. Получить массив B, присвоив его k - у элементу значение 0, если все элементы k -го столбца матрицы нулевые, и значение 1 − в противном случае.

    Попытка не увенчались успехом
     
  2. ecookie
    ecookie 15 апр 2022 2 22 мар 2022
    C
    #include <iostream>
    #include <vector>
    using namespace std;


    void func(vector<vector<int>>& _arr)
    {
    for (int i = 0; i < _arr[0].size(); ++i)
    {
    bool flag = true;
    for (int j = 1; j < _arr.size(); ++j)
    {
    if (_arr[j][i] != 0) {
    flag = false;
    break;
    }
    }
    if (flag) _arr[0][i] = 0;
    else _arr[0][i] = 1;
    }
    }

    void print_array(vector<vector<int>>& _arr)
    {
    for (int i = 0; i < _arr.size(); ++i)
    {
    for (int j = 0; j < _arr[0].size(); ++j)
    {
    cout << _arr[i][j] << ' ';
    }
    cout << '\n';
    }
    }



    int main()
    {

    // Ввод n, m
    int n, m;
    cin >> n >> m;

    // Создание двумерного массива нулей
    vector<vector<int> > array(n, vector<int>(m));

    // Один элемент будет ненулевым
    array[1][0] = 23;

    // Сама функция
    func(array);

    // Вывод
    print_array(array);

    return 0;
    }
     
    1. Phonoral
      ecookie, векторы для зумеров)
    2. ecookie
      Phonoral, new, delete для думеров
  3. Phonoral
    Phonoral 15 апр 2022 4 13 янв 2020
    C
    #include <iostream>
    #include <cmath>

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "Russian"); // Русский в консоли

    int ** matrix = nullptr; // Указатель на указатель (для динамического выделения памяти)
    int * B = nullptr; // Результирующий массив
    int N = 0; // Строки
    int M = 0; // Столбцы

    // Ввод параметров
    cout << "Введите количество строк N: ";
    cin >> N;
    cout << endl << "Введите количество столбцов M: ";
    cin >> M;
    cout << endl;

    // Выделение памяти
    matrix = new int * [N]; /// Строки
    for (unsigned i = 0; i < N; i++) matrix[i] = new int[M]; // Столбцы
    B = new int[M];

    // Ввод матрицы (построчно)
    for (unsigned i = 0; i < N; i++)
    {
    for (unsigned j = 0; j < M; j++)
    {
    cout << "Введите " << j + 1 << " элемент " << i + 1 << " строки матрицы: ";
    cin >> matrix[i][j];
    cout << endl;
    }
    }

    // Вывод матрицы
    cout << "Матрицы:" << endl;
    for (unsigned i = 0; i < N; i++)
    {
    for (unsigned j = 0; j < M; j++)
    {
    cout << matrix[i][j] << " ";
    }
    cout << endl;
    }

    // Рассчеты
    for (unsigned j = 0; j < M; j++)
    {
    int sum = 0;

    for (unsigned i = 0; i < N; i++)
    {
    sum += abs(matrix[i][j]);
    }

    if (sum == 0) B[j] = 0;
    else B[j] = 1;
    }

    // Вывод результата
    cout << "Массив В: ";
    for (unsigned j = 0; j < M; j++) cout << B[j] << " ";

    // Очистка выделенной памяти
    for (unsigned i = 0; i < N; i++) delete[] matrix[i];
    delete[] matrix;
    delete[] B;
    }
     
Top
Загрузка...