Загрузка...

Не могу найти ошибку в коде

Тема в разделе C/C++ создана пользователем sfds 31 май 2021. 206 просмотров

  1. sfds
    sfds Автор темы 31 май 2021 0 31 май 2021
    Задание такое. Определить номер столбца матрицы A, сумма элементов которого минимальна. Процедуру вычисления номер столбца произвольной матрицы, сумма элементов которого минимальна, оформить в виде функции пользователя (подпрограммы). Привести результаты расчетов для такой матрицы: int M[m][n] = {{2,7,9,4,1}, {1,6,3,0,5}, {7,0,1,4,7}}.

    Я написал программу для вычисления номера нужного столбца, и описал массив. Но не могу понять как запустить программу для данного массива. Программа должна выводить номер столбца.


    #include <stdio.h>
    #include <conio.h>
    #include <math.h>

    int min (int** M, int n, int m)
    {
    int R = 0;
    int k = 0;
    for(int i = 0; i < n; i++)
    k += M[0];
    for(int j = 0; j<m; j++)
    {
    int t = 0;
    for(int i = 0; i<n; i++)
    t += M[j];
    if(k>t)
    {
    R = j;
    k=t;
    }
    }
    return R;
    }
    int main(int argc, char** argv)
    {
    int m=5, n=3, rez;
    int M[m][n] = {{2,7,9,4,1}, {1,6,3,0,5}, {7,0,1,4,7}};
    rez = min (M, m, n);
    printf("rez: %d", rez);
    }
     
  2. iez30547
    iez30547 2 июн 2021 0 4 май 2021
    сделаю за 50 рублей
     
  3. dav1_gg
    dav1_gg 5 июн 2021 0 10 июн 2020
    sfds, у тебя неправильно заданы значения для массива M и неправильно прибавляется значение к ячейкам
    --- Сообщение объединено с предыдущим 5 июн 2021
    sfds, [IMG] Смотри комментарии к скрину
    --- Сообщение объединено с предыдущим 5 июн 2021
    sfds, правильный код: (изменения выделил жирным и курсивом)

    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    const int m = 5;
    const int n = 3;


    int min(int M[m][n], int n, int m)
    {
    int R = 0;
    int k = 0;
    for (int i = 0; i < n; i++)
    k += M[0];
    for (int j = 0; j < m; j++)
    {
    int t = 0;
    for (int i = 0; i < n; i++)
    t += M[j];
    if (k > t)
    {
    R = j;
    k = t;
    }
    }
    return R;
    }
    int main(int argc, char** argv)
    {
    int rez;
    int M[m][n] = {2,7,9,4,1, 1,6,3,0,5, 7,0,1,4,7};
    rez = min(M, m, n);
    printf("rez: %d", rez);
    }
     
Top
Загрузка...