Cod sursa(job #227691)

Utilizator ooctavTuchila Octavian ooctav Data 5 decembrie 2008 10:57:21
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
	int n,a,y,t,i;
	char c[105];
	char d[3];
	char h[7];
	int e[20]={0,1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4};
	FILE *f1,*f2;
	f1=fopen("cifra.in","r");
	f2=fopen("cifra.out","w");
	fgets(c,104,f1);
	y=strlen(c);
	while((c[y-1]=='\n')||(c[y-1]=='\r'))
	{
		c[y-1]=0;
		y=strlen(c);
	}
		
	y=strlen(c);
	if(y==5)
	{
		h[0]=c[y-5];
		h[1]=c[y-4];
		h[2]=c[y-3];
		h[3]=c[y-2];
		h[4]=c[y-1];
		h[5]=0;
	}
	else if(y==4)
	{
		h[0]=c[y-4];
		h[1]=c[y-3];
		h[2]=c[y-2];
		h[3]=c[y-1];
		h[4]=0;
	}
	else if(y==3)
	{
		h[0]=c[y-3];
		h[1]=c[y-2];
		h[2]=c[y-1];
		h[3]=0;
	}
	else if(y==2)
	{
		h[0]=c[y-2];
		h[1]=c[y-1];
		h[2]=0;
	}
	else if(y==1)
	{
		d[0]=c[y-1];
		d[1]=0;
	}
	else
		d[0]=0;
	t=atoi(d);
	for(i=1;i<=t;i++)
	{
		fgets(c,104,f1);
		y=strlen(c);
		while((c[y-1]=='\n')||(c[y-1]=='\r'))
		{
			c[y-1]=0;
			y=strlen(c);
		}
			
		y=strlen(c);
		if(y>=2)
		{
			d[0]=c[y-2];
			d[1]=c[y-1];
			d[2]=0;
		}
		else if(y==1)
		{
			d[0]=c[y-1];
			d[1]=0;
		}
		else
			d[0]=0;
		n=atoi(d);
		a=n/20;
		n=n%20;
		n=(e[n]+4*a)%10;
		fprintf(f2,"%d\n",n);
	}
	fclose(f1);
	fclose(f2);
	return 0;
}