2016-01-23 124 views
-1

这是我得到的错误:错误:预期表达式之前 '=' 令牌

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; 
} 

回答

1
+= != + = 

含义:只写:suma += mat[N][M];
............................................^no space。

为了完整起见,我将添加什么Sourav提到: 您需要先for循环之后ii=0)复位,避免边界内存的访问并导致未定义的行为。

+2

它的工作原理!谢谢! –

+1

你错过了索引部分。 :) –

+0

你是对的,虽然tbh我没有找到,因为问题似乎很明确:) – Idos

0

要回答编译器问题,+=+ =不是同一回事。您应该使用+=,而不要在两者之间留出空间。

我相信**suma排字错误在您的代码。 (或错过格式化)。你的程序调用undefined behavior。在后面的循环中,

vector[i]=suma; 

您没有重置i。它会尝试访问超出限制的内存。

要么你需要使用k作为索引,或者重置i并根据需要增加。

+0

好的,也谢谢:) –

+0

你参考放**矢量[k] + = suma; ** ?? –

+0

@ V_WraMphT3R nope,'vector [k] = suma;' –

相关问题