Как я могу напечатать массив A [n] [m]; используя main (), который был scanf () в подпрограмме? - PullRequest
0 голосов
/ 28 апреля 2020

В приведенном ниже коде я пытаюсь scanf() матрицу в подпрограмме, а затем я хочу printf() это в разделе main(). Как мне этого добиться? Моя главная цель - полностью понять, как я могу передать матрицы из подпрограммы в программу main(). Спасибо!

#include <stdio.h>

#define R 2
#define C 3

float save_the_matrix(int N, int M, float (*B)[M]);

int main(void)
{
  int n=2,m=3;
  int i,j;
  float A[n][m],C[n][m];

  puts("Enter the values of the matrix:");
  save_the_matrix( n, m, c);

  for(i=0;i<n;i++)
  {
    for(j=0;j<m;j++)
      printf("%6.2f",C[i][j]);
    printf("\n");
  }

  return 0;
}


float save_the_matrix(int N, int M, float (*B)[M])

{
  for(i=0;i<N;i++)
    for(j=0;j<M;j++)
    {
      printf("A[%d][%d]=",i,j);
      (*B)[M]=scanf("%f",&A[i][j]);
    }
}

1 Ответ

1 голос
/ 28 апреля 2020

Когда вы точно знаете размер массива, вы должны использовать объявление:

float save_the_matrix(int N, int M, float B[N][M]);

Итак, реализация этой функции:

float save_the_matrix(int N, int M, float B[N][M])
{
  int i,j;
  for(i=0;i<N;i++)
    for(j=0;j<M;j++)
    {
      printf("B[%d][%d]=",i,j);
      scanf("%f",&B[i][j]);
    }
}

Вам не нужно определять R и C потому что это может вызвать конфликт в вашем коде.

save_the_matrix( n, m, c);

Следует использовать C вместо c

Вы должны использовать -Wall -Wextra, когда Вы компилируете, чтобы показать предупреждение в вашем коде. Например, объявление матрицы A: float A[n][m], которое объявлено, но не используется.

...