Cod sursa(job #312746)

Utilizator meskalineMihalache Alexandru Calin meskaline Data 6 mai 2009 21:08:42
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 3.6 kb
#include <stdio.h>
#include <string.h>

void p1()
{
	FILE *fi;
	char linie[100];
	fi=fopen("in.txt","rt");
	while(feof(fi)==0)
	{
		fgets(linie,100,fi);
		printf("%s",linie);
	}
}

void p2()
{
	FILE *fi;
	int i=0;
	char linie[100], *cuv;
	fi=fopen("in.txt","rt");
	while(feof(fi)==0)
	{
		fgets(linie,100,fi);
		cuv = strtok (linie," ,.\n");
		while (cuv != NULL)
		{
			i++;
			if(i%2==0)
				printf ("%s ",cuv);
			cuv = strtok (NULL, " ,.\n");
		}
		printf("\n");
	}
}

void p3()
{
	FILE *fi;
	int i=0, contor, n;
	char linie[100], aux[100], *cuv, m[100][20];
	fi=fopen("in.txt","rt");
	while(feof(fi)==0)
	{
		fgets(linie,100,fi);
		cuv = strtok (linie," ,.\n");
		while (cuv != NULL)
		{
			strcpy(m[i],cuv);
			i++;
			cuv = strtok (NULL, " ,.\n");
		}
	}
	n=i;
	while(contor)
	{
		contor=0;
			for(i=0;i<n-1;i++)
				if(strlen(m[i])<strlen(m[i+1]))
				{
					strcpy(aux,m[i]);
					strcpy(m[i],m[i+1]);
					strcpy(m[i+1],aux);
					contor=1;
				}
	}
	for(i=0;i<n;i++)
		printf("%s\n",m[i]);
}

void p4()
{
	FILE *fi;
	int i=0,j=0,k, n, aparitii[100];
	char linie[100], *cuv, m[100][20];
	fi=fopen("in.txt","rt");
	while(feof(fi)==0)
	{
		fgets(linie,100,fi);
		cuv = strtok (linie," ,.\n");
		while (cuv != NULL)
		{
			for(i=0;i<j;i++)
				if(strcmp(m[i],cuv)==0)
				{
					aparitii[i]++;
					i=j+2;
				}
			if(i!=j+2)
			{
				strcpy(m[j],cuv);
				aparitii[j]=1;
				j++;
			}
			strcpy(m[i],cuv);
			j++;
			cuv = strtok (NULL, " ,.\n");
		}
	}
	n=j;
	scanf("%d", &k);
	for(i=0;i<n;i++)
		if(aparitii[i]>=k)
			printf("%s\n",m[i]);
}

void p5()
{
	FILE *fi;
	char linie[100];
	int i,sf;
	fi=fopen("in.txt","rt");
	while(feof(fi)==0)
	{
		fgets(linie,100,fi);
		sf=strlen(linie)-1;
		for(i=sf;i>-1;i--)
			printf("%c", linie[i]);
		printf("\n");
	}

}

void p6()
{
	FILE *fi, *fd, *fo;
	int i=0,j=0, n, x;
	char linie[100], *cuv, m[100][20], limba[100], dic[100][20];
	fi=fopen("in.txt","rt");
	while(feof(fi)==0)
	{
		fgets(linie,100,fi);
		cuv = strtok (linie," ,.\n");
		while (cuv != NULL)
		{
			strcpy(m[i],cuv);
			i++;
			cuv = strtok (NULL, " ,.\n");
		}
		strcpy(m[i],"\n");
		i++;
	}
	n=i;
	i=0;
	fd=fopen("dictionar_en.txt","rt");
	while(feof(fd)==0)
	{
		fgets(linie,100,fd);
		cuv = strtok (linie," =,.\n");
		while (cuv != NULL)
		{
			strcpy(dic[i],cuv);
			i++;
			cuv = strtok (NULL, " =,.\n");
		}
	}
	x=i;
	for(i=0;i<n;i++)
	{
		if(strcmp(m[i],"\n")==0)
			printf("\n");
		else
		{
			for(j=0;j<x;j+=2)
				if(strcmp(m[i],dic[j])==0)
				{
					printf("%s ", dic[j+1]);
					break;
				}
			if(j==x-1)
				printf("*** ");
		}
	}
}

void lungime()
{
	FILE *fi;
	int i=0;
	char linie[100], k, *cuv;
	scanf("%d", &k);
	fi=fopen("in.txt","rt");
	while(feof(fi)==0)
	{
		fgets(linie,100,fi);
		cuv = strtok (linie," ,.\n");
		while (cuv != NULL)
		{
			if(strlen(cuv)>=k)
				printf ("%s ",cuv);
			cuv = strtok (NULL, " ,.\n");
		}
		printf("\n");
	}
}

void frecventa()
{
	FILE *fi;
	int i=0,j=0,k, n, aparitii[100];
	char linie[100], *cuv, m[100][20];
	fi=fopen("in.txt","rt");
	while(feof(fi)==0)
	{
		fgets(linie,100,fi);
		cuv = strtok (linie," ,.\n");
		while (cuv != NULL)
		{
			for(i=0;i<j;i++)
				if(strcmp(m[i],cuv)==0)
				{
					aparitii[i]++;
					i=j+2;
					break;
				}
			if(i!=j+2)
			{
				strcpy(m[j],cuv);
				aparitii[j]=1;
				j++;
			}
		
			cuv = strtok (NULL, " ,.\n");
		}
	}
	n=j;
	for(i=0;i<j;i++)
		printf("%s apare in text de %d ori\n", &m[i], aparitii[i]);
}

void main()
{
	frecventa();	
}