#include<stdio.h>
const lw = 5;
const lk = 7;
void czytaj(int [][lk]);
void licz(int [][lk]);
void naekran(int [][lk]);
void zapisz(int [][lk]);
main()
{
int tab[lw][lk];
czytaj(tab);
naekran(tab);
licz(tab);
naekran(tab);
zapisz(tab);
}
void czytaj(int tab[][lk])
{
char c;
FILE *fpi;
fpi = fopen("C:\\dane.txt","r");
int w = 0, k = 0, min;
while((c = fgetc(fpi)) != EOF)
{ if(c != '\n')
{
if(c == '0') tab[w][k] = 0;
if(c == '1') tab[w][k] = 1;
k++;
}
else { w++; k=0; };
}
fclose(fpi);
}
void naekran(int tab[][lk])
{ int w, k;
for(w = 0; w < lw; w++)
{for(k = 0; k < lk; k++)
printf("%d", tab[w][k]);
printf("\n");
}
printf("\n");
}
void licz(int tab[][lk])
{ int w, k, min;
for(w = 1; w < lw; w++)
for(k = 1; k < lk; k++)
{
if(tab[w][k] == 1)
{
if(tab[w-1][k-1] < tab[w-1][k])
min = tab[w-1][k-1];
else min = tab[w-1][k];
if(min > tab[w][k-1])
min = tab[w][k-1];
else tab[w][k]= min + 1;
}
}
}
void zapisz(int tab[][lk])
{ int w,k;
FILE *fpo;
fpo = fopen("C:\\wyniki.txt", "w");
for(w = 0; w < lw; w++)
{for(k=0;k<lk;k++) fputc(tab[w][k]+48, fpo);
fputc('\n', fpo);
}
fclose(fpo);
}