Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 2nd, 2012  |  syntax: C  |  size: 2.45 KB  |  hits: 17  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <stdio.h>
  2. int alg1(int h, int l, int matriz[h][l]);
  3. int alg1(int h, int l, int matriz[h][l]){
  4. int vecinos=0,al,an;
  5. for (al=0;al<h;al++){
  6.     for (an=0;an<l;an++){
  7.         vecinos=0;
  8.         if (al==0){
  9.            if (an==0){
  10.                 vecinos=matriz[0][1]+matriz[1][1]+matriz[1][0];}
  11.            else if (an!=0 && an!=l-1){
  12.                 vecinos=matriz[0][an-1]+matriz[0][an+1]+matriz[1][an+1]+matriz[1][an]+matriz[1][an-1];}
  13.            else if (an==l-1){
  14.                 vecinos=matriz[0][l-2]+matriz[1][l-1]+matriz[1][l-2];}
  15.                 }
  16.         else if (al==h-1){
  17.            if (an==0){
  18.                 vecinos=matriz[h-2][1]+matriz[h-2][0]+matriz[h-1][1];}
  19.            else if (an==l-1){
  20.                 vecinos=matriz[h-2][l-2]+matriz[h-1][l-2]+matriz[h-2][l-1];}
  21.            else if (an!=0 && an!=l-1){
  22.                 vecinos=matriz[h-2][an]+matriz[h-1][an-1]+matriz[h-2][an-1]+matriz[h-1][an+1]+matriz[h-2][an+1];}
  23.                 }
  24.         else if (an==0){
  25.              if (al!=0 && al!=h-1){
  26.                 vecinos=matriz[al-1][0]+matriz[al-1][1]+matriz[al][1]+matriz[al+1][0]+matriz[al+1][1];}
  27.                 }
  28.         else if (an==l-1){
  29.              if (al!=0 && al!=h-1){
  30.                 vecinos=matriz[al-1][l-2]+matriz[al][l-2]+matriz[al+1][l-2]+matriz[al-1][l-1]+matriz[al+1][l-1];}
  31.                 }
  32.         else {
  33.                 vecinos=matriz[al-1][an-1]+matriz[al-1][an]+matriz[al-1][an+1]+matriz[al][an-1]+matriz[al][an+1]+matriz[al+1][an+1]+matriz[al+1][an]+matriz[al+1][an-1];
  34.                 }
  35.         if (matriz[al][an]==0 && vecinos==3){
  36.                 matriz[al][an]=1;}
  37.         if (matriz[al][an]==1 && (vecinos<2 || vecinos>3)){
  38.                 matriz[al][an]=0;}
  39.         }
  40.  }
  41. return(matriz[h][l]); }
  42.  
  43.  
  44.  
  45. int main(){
  46. int altura,ancho,x,y,cont;
  47. FILE *fichero;
  48. fichero=fopen("entrada.txt","r");
  49. fscanf (fichero,"%d",&altura);
  50. fscanf (fichero,"%d",&ancho);
  51. int matriz[altura][ancho];
  52. for (y==0;y<altura;y++){
  53.     for (x==0;x<ancho;x++){
  54.         fscanf (fichero,"%d",&matriz[y][x]);
  55.         }
  56.     }
  57.  
  58.  
  59. for (cont=0;cont<50;cont++){
  60.     matriz[altura][ancho]=alg1(altura,ancho,matriz);
  61.     for (x=0;x<altura;x++){
  62.         printf ("\n");
  63.         for (y=0;y<ancho;y++){
  64.                if (matriz[x][y]==1){
  65.                printf("O ");}
  66.                else if (matriz[x][y]==0){
  67.                printf ("- ");}
  68.             }
  69.         }
  70.     printf ("\n");
  71.     }
  72. fclose (fichero);
  73. return(0);
  74. }