这是我得到的错误:
c:17:15: error: expected expression before ‘=’ token
suma + = mat[N][M];
这是我的代码:
#include<stdio.h>
#define N 3
#define M 3
int mat[N][M]i,j,k,l,m,n;
int vector[N];
int suma;
int main (void){
for(i=0;i<N;i++){
for(j=0;j<M;j++){
printf("Enter a number: ");
scanf("%d", &mat[N][M]);
}
}
for(k=0;k<N;k++){
suma=0;
for(l=0;l<M;l++){
**suma+ = mat[N][M];
}
vector[i]=suma;
}
return 0;
}
答案 0 :(得分:1)
+= != + =
意义:只需写:suma += mat[N][M];
............................................ ^没有空间。
为了完整起见,我将添加Sourav提到的内容:
您需要在第一个i
循环后重置i=0
(for
),以避免访问超出范围的内存并导致未定义的行为。
答案 1 :(得分:0)
要回答编译器问题,+=
和+ =
不是一回事。你应该使用+=
而不留空格。
我相信代码中的**suma
是拼写错误。 (或错过格式化尝试)。
也就是说,您的程序会调用{{3}}。在后面的循环中,
vector[i]=suma;
您没有重置i
。它将尝试访问超出范围的内存。
您需要使用k
作为索引,或者重置i
并根据需要增加该值。