
Untitled
By: a guest on
May 2nd, 2012 | syntax:
C | size: 2.45 KB | hits: 17 | expires: Never
#include <stdio.h>
int alg1(int h, int l, int matriz[h][l]);
int alg1(int h, int l, int matriz[h][l]){
int vecinos=0,al,an;
for (al=0;al<h;al++){
for (an=0;an<l;an++){
vecinos=0;
if (al==0){
if (an==0){
vecinos=matriz[0][1]+matriz[1][1]+matriz[1][0];}
else if (an!=0 && an!=l-1){
vecinos=matriz[0][an-1]+matriz[0][an+1]+matriz[1][an+1]+matriz[1][an]+matriz[1][an-1];}
else if (an==l-1){
vecinos=matriz[0][l-2]+matriz[1][l-1]+matriz[1][l-2];}
}
else if (al==h-1){
if (an==0){
vecinos=matriz[h-2][1]+matriz[h-2][0]+matriz[h-1][1];}
else if (an==l-1){
vecinos=matriz[h-2][l-2]+matriz[h-1][l-2]+matriz[h-2][l-1];}
else if (an!=0 && an!=l-1){
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];}
}
else if (an==0){
if (al!=0 && al!=h-1){
vecinos=matriz[al-1][0]+matriz[al-1][1]+matriz[al][1]+matriz[al+1][0]+matriz[al+1][1];}
}
else if (an==l-1){
if (al!=0 && al!=h-1){
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];}
}
else {
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];
}
if (matriz[al][an]==0 && vecinos==3){
matriz[al][an]=1;}
if (matriz[al][an]==1 && (vecinos<2 || vecinos>3)){
matriz[al][an]=0;}
}
}
return(matriz[h][l]); }
int main(){
int altura,ancho,x,y,cont;
FILE *fichero;
fichero=fopen("entrada.txt","r");
fscanf (fichero,"%d",&altura);
fscanf (fichero,"%d",&ancho);
int matriz[altura][ancho];
for (y==0;y<altura;y++){
for (x==0;x<ancho;x++){
fscanf (fichero,"%d",&matriz[y][x]);
}
}
for (cont=0;cont<50;cont++){
matriz[altura][ancho]=alg1(altura,ancho,matriz);
for (x=0;x<altura;x++){
printf ("\n");
for (y=0;y<ancho;y++){
if (matriz[x][y]==1){
printf("O ");}
else if (matriz[x][y]==0){
printf ("- ");}
}
}
printf ("\n");
}
fclose (fichero);
return(0);
}