Не умеет печатать матричные элементы через функции - PullRequest
0 голосов
/ 21 октября 2019

Я не могу печатать элементы матрицы через функцию.

Ниже приведен код, который я написал. Пожалуйста, помогите мне, ответив решением.

main() {
    int m[10][10], r, c, m_sum;
    add_elements(m, r, c);
    print_elements(m, r, c, m_sum);
}
add_elements(int m[10][10], int r, int c, int m_sum){
    int i, j;
    printf("Enter the number of rows: ");
    scanf("%d", &r);
    printf("\nEnter the number of rows: ");
    scanf("%d", &c);
    for(i=1; i<=r; i++){
        for(j=1;j<=c; j++){
            scanf("%d", &m[i][j]);
            m_sum = m_sum + m[i][j];
        }
    }

}
print_elements(int m[10][10], int r, int c, int m_sum){
    int i, j;
    printf("\n\nThe matrix is: \n\n");
    for(i=1; i<=r; i++){
        for(j=1;j<=c; j++){
            printf("%d", m[i][j]);
            printf("\t");
        }
        printf("\n");
    }
    printf("\n\nThe sum of the elements are : %d", m_sum);
}

1 Ответ

2 голосов
/ 21 октября 2019

Вот рабочий код, который правильно печатает матрицу и сумму.

#include<stdio.h>
add_elements(int m[10][10], int *r, int *c, int *m_sum)
{
    int i, j;
    printf("Enter the number of rows: ");
    scanf("%d", r);
    printf("\nEnter the number of rows: ");
    scanf("%d", c);
    for(i=0; i<*r; i++){
        for(j=0;j<*c; j++){
            scanf("%d", &m[i][j]);
            *m_sum = *m_sum + m[i][j];
        }
    }

}
print_elements(int m[10][10], int r, int c, int m_sum)
{
    int i, j;
    printf("\n\nThe matrix is: \n\n");
    for(i=0; i<r; i++){
        for(j=0;j<c; j++){
            printf("%d", m[i][j]);
            printf("\t");
        }
        printf("\n");
    }
    printf("\n\nThe sum of the elements are : %d", m_sum);
}
int main()
{
    int m[10][10], r, c, m_sum=0;
    add_elements(m, &r, &c,&m_sum);
    print_elements(m, r, c, m_sum);
}

Исправлены некоторые ошибки:

  1. Функции должны быть объявлены до их вызова, то естьдо main()
  2. Индекс массива в C от 0 до n-1, а не от 1 до n
  3. m_sum не был инициализирован в 0
  4. Количество параметров не было одинаковым для добавляемых элементов
  5. Значения r, c и m_sum не обновлялись после возврата с add_elements() на main() функция. Итак, я передал их как указатели на функцию.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...