2016-05-11 16 views
0

Ich weiß, diese Frage wurde bereits gestellt, und ich habe alle vorherigen Antworten überprüft, kann aber immer noch nicht den Fehler finden.Das Programm ist noch nicht fertig, also ist die Logik unvollständig , ich will nur laufen und prüfen Sie, was ich bisher haben.Fehler: erwartete Kennung oder '(' vor '}' Token}

#include <math.h> 
#include <stdio.h> 
#include <omp.h> 

int a[100][100]; 

int countNeighbors(int x, int y){ 

    int count = 0; 
    int i,j; 
    for (i = x-1; i <= x+1; i++) 
     for (j = y-1; i <= y+1; j++) 
      if (a[x][y] == 1) count++; 

    return count; 
} 

int main (int argc, const char* argv[]) { 

    int n, i, j, count; 

    printf("Enter grid dimension:"); 
    scanf("%d",&n); 

// Initializing the array with random values 
    srand (time(NULL)); 
    for (i=0;i<n;i++) 
     for(j=0;j<n;j++) 
      a[i][j] = rand() % 2; 


    for (i=0;i<n;i++){ 
     printf("\n"); 
     for(j=0;j<n;j++) 
      printf("%d",a[i][j]); 
    } 

    for (i = 1; i < n-1; i++) 
     for (j = 1; j < n-1; j++){ 
      count = countNeighbors(i,j); 
      if (a[i][j] == 1){ 
       if (count >= 4 || count <=1) a[i][j] = 0; 
       else a[i][j] = 1; 
      } 
      else if (count == 3) a[i][j] = 1; 
     } 


    for (i=0;i<n;i++){ 
     printf("\n"); 
     for(j=0;j<n;j++) 
      printf("%d",a[i][j]); 
    } 


} 

Antwort

1

Es scheint, dass das Problem in der Linie #include <omp.h> sein könnten. Einige Bibliotheken können Sie benötigen, um ihre Header-Dateien in einer bestimmten Reihenfolge schließen, sonst Sie können errors like this ergeben. Mein Vorschlag ist es, das # include an der Spitze der Datei zu platzieren. Es scheint jedoch nicht, dass es verwendet wird, also würde ich es auslassen, bis Sie feststellen, dass Sie es brauchen.

Darüber hinaus, auch wenn Sie das # include entfernen, müssen Sie sicherstellen, #include <time.h> und #include <stdlib.h> oder auch Ihre Anrufe zu time() und rand() in Kompilierungsfehlern führt zu machen.

+0

Ich entfernte die und fügte hinzu , aber ich bekomme den gleichen Fehler. project.c: 50: 31: error: expected identifier oder '(' vor '}' token } – Katya

+1

Ich bekomme keinen solchen Fehler.Sie sagen, der Fehler ist in Zeile 50, Spalte 31? Es sieht so aus, als ob Sie da sind Habe eine verschachtelte for-Schleife. Ich weiß nicht, warum dein Compiler sich beschweren würde, da die Syntax gültig aussieht, und kompiliert für mich. Welchen Compiler verwendest du? Bist du sicher, dass du deinen neuesten Code kompilierst? Sie fügen geschweifte Klammern nach der for-Schleife hinzu und setzen 'printf ("% d ", a [i] [j]);' innerhalb von ihnen? Es lohnt sich, nach all Ihren if-Anweisungen und for-Schleifen geschweifte Klammern hinzuzufügen Code viel besser lesbar –

+0

@Katya: Soweit ich das beurteilen kann, gibt es keine Spalte 31 in Zeile 50. Bitte geben Sie genauere Code und Fehlermeldungen. –

Verwandte Themen