Cod sursa(job #123457)

Utilizator Dr.OptixCristian Dinu Dr.Optix Data 15 ianuarie 2008 23:23:46
Problema Text Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.42 kb
/*Dezamagit de rezultatele sale la ultimul concurs, Paftenie a renuntat la programare si s-a
concentrat strict asupra muncii laborioase, dar care implica mai putin efort intelectual. De
aceasta data, el primeste un text si trebuie sa calculeze lungimea medie a cuvintelor textului,
un cuvant fiind definit ca o secventa continua maximala de caractere ale alfabetului englez
('a' .. 'z' , 'A' .. 'Z').
Definim lungimea medie = (lungimea totala a cuvintelor textului) / (numarul de cuvinte ale textului).

Cerinta
Scrieti un program care ii rezolva problema lui Paftenie.

Date de intrare
Pe prima linie a fisierului de intrare text.in se gaseste textul dat.

Date de iesire
Fisierul de iesire text.out va contine pe prima linie un singur intreg, reprezentand partea intreaga
a lungimii medii a cuvintelor textului.

Restrictii si precizari
 * Dimensiunea fisierului de intrare este de cel mult 1MB
 * Fisierul de intrare va contine doar litere mari si mici, cifre, spatii si simboluri (adica nu va 
 contine caractere speciale)
*/

#include <fstream.h>
#include <string.h>
	
char delim[]=" ,.?!;:'\"/?\\|[]{}`~@#$%^&*()-_+=";
ifstream in("text.in");
ofstream out("text.out");

int main()
{
	char linie[1025], *p;
	int s=0, nc=0;
	while(!in.eof())
	{
	in.getline(linie,1025);
	
	p=strtok(linie,delim);
	while(p!=NULL)
	{
		nc++;
		s+=strlen(p);
		p=strtok(NULL,delim);
	}
	}
	out<<(int)s/nc;
	
	return 0;
}