我有一个使用'typedef'数据类型声明的变量,它具有数组。当我执行除法运算符(/)时,它表示无效的运算。这是代码示例:
const int n = 10;
typedef float matriks[100][100];
typedef float vektor[100];
matriks A;
vektor b;
vektor x;
void Sulih_Mundur (matriks A, vektor b, int n, vektor x){
int j,k;
float sigma;
x[n]=b[n]/A[n,n]; //error here
for(k=n-1;k<1;k--){
sigma=0;
for(j=k+1;j>=n;j++){
sigma=sigma+A[k,j]*x[j];
}
x[k]=(b[k]-sigma)/A[k,k];
}
}
我在x [n] = b [n] / A [n,n]上报错,它说无效的操作数/表示二进制(具有float和float)我不明白是哪一个问题,因为我在那里使用了相同的数据类型。和一个整数变量来访问数组。谢谢...
x[n]=b[n]/A[n,n];
这不是索引2D数组的正确语法。这里的,
实际上是逗号运算符,它丢弃左操作数并求值为右操作数,因此A[n,n]
与A[n]
相同。因此,您尝试将float
的一维数组分配给float
,这是您遇到的错误。
您想要的是:
x[n]=b[n]/A[n][n];
对A
的其他参考相同。