错误:'='标记之前的预期表达式

时间:2016-01-23 14:53:12

标签: c arrays operators

这是我得到的错误:

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

2 个答案:

答案 0 :(得分:1)

+=   !=   + =

意义:只需写:suma += mat[N][M];
 ............................................ ^没有空间。

为了完整起见,我将添加Sourav提到的内容: 您需要在第一个i循环后重置i=0for),以避免访问超出范围的内存并导致未定义的行为。

答案 1 :(得分:0)

要回答编译器问题,+=+ =不是一回事。你应该使用+=而不留空格。

我相信代码中的**suma拼写错误。 (或错过格式化尝试)。

也就是说,您的程序会调用{{3}}。在后面的循环中,

vector[i]=suma;

您没有重置i。它将尝试访问超出范围的内存。

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