我如何打印数组A [n] [m];使用子程序中的scanf()的main()?

问题描述 投票:0回答:1

在下面的代码中,我尝试在子程序中将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]);
    }
}
c matrix scanf
1个回答
0
投票

当您确切知道数组的大小时,应使用声明:

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

因此,执行此功能:

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

您不需要定义RC,因为它可以在您的代码中引起冲突。

save_the_matrix( n, m, c);

应使用C代替c

© www.soinside.com 2019 - 2024. All rights reserved.