在下面的代码中,我尝试在子程序中将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]);
}
}
当您确切知道数组的大小时,应使用声明:
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]);
}
}
您不需要定义R
和C
,因为它可以在您的代码中引起冲突。
save_the_matrix( n, m, c);
应使用C
代替c