Загрузка...

Can't find error in code

Thread in C/C++ created by sfds May 31, 2021. 207 views

  1. sfds
    sfds Topic starter May 31, 2021 0 May 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 Jun 2, 2021 0 May 4, 2021
    сделаю за 50 рублей
     
  3. dav1_gg
    dav1_gg Jun 5, 2021 0 Jun 10, 2020
    sfds, у тебя неправильно заданы значения для массива M и неправильно прибавляется значение к ячейкам
    The post was merged to previous Jun 5, 2021
    sfds, [IMG] Смотри комментарии к скрину
    The post was merged to previous Jun 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
Loading...