【发布时间】:2015-12-21 13:55:02
【问题描述】:
所以我试图编写有关Jordan's elimination 的代码。当我遇到问题时:
无法将 'float' 转换为 'float ()[100]' 以将参数 '1' 转换为 'int diabase(float ()[100])
这是什么意思?我该如何解决?
#include<stdio.h>
#define N 100
int read(float A[N][N]);
int jordan(float A[N][N],int n);
int print(float A[N][N],int n);
int main()
{
int i, j, k, n, y;
float A[N][N+1], c, x[N];
n = read(A[N][N]);
jordan(A[N][N]], n);
print(A[N][N], n);
return(0);
}
int read(float A[N][N]){
int n,i,j;
printf("Enter the size of matrix: ");
scanf("%d",&n);
printf("Enter the elements of augmented matrix row-wise:");
for(i=1; i<=n; i++)
{
for(j=1; j<=(n+1); j++)
{
printf(" A[%d][%d]:", i,j);
scanf("%f",&A[i][j]);
}
}
return n;
}
int print( float A[N][N],int n){
int i;
float x[n];
printf("The solution is:");
for(i=1; i<=n; i++)
{
x[i]=A[i][n+1]/A[i][i];
printf("n x%d=%fn",i,x[i]);
}
return 0;
}
int jordan(float A[N][N],int n){
int i,j,k;
float c;
for(j=1; j<=n; j++)
{
for(i=1; i<=n; i++)
{
if(i!=j)
{
c=A[i][j]/A[j][j];
for(k=1; k<=n+1; k++)
{
A[i][k]=A[i][k]-c*A[j][k];
}
}
}
}
return 0;
}
【问题讨论】:
-
为了便于阅读,请缩进您的代码
-
n=read(A[N][N]);你给函数一个浮点值,它采用“float A[N][N]”(它是 float*[N] 类型)。试试“n=read(A);”
-
@user3514538
float A[N][N]不是float **。 -
@Holt 是的,我更正了
-
@user3514538:缺少父级:
float (*)[N]。