Pagini recente » Cod sursa (job #946281) | Cod sursa (job #1746893) | Cod sursa (job #199446) | Cod sursa (job #859233) | Cod sursa (job #78675)
Cod sursa(job #78675)
/*******************************************************************************
Problema : Text
Website : InfoArena
Rezolvitor : Dr.Optix
Enunt:
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)
*******************************************************************************/
//includ fisierele necesare
#include <fstream.h>
#include <string.h>
//main() - functia principala
int main()
{
//deschid fisierele
ifstream fin("text.in"); ofstream fout("text.out");
//declar variabilele necesare
char linie[1024],*tok;
char delim[]="., -!?";
int lstr, cuv,r;
//realizez ce imi cere problema
cuv=0;
fin.getline(linie,1024);
tok=strtok(linie,delim);
while(tok!=NULL)
{
cuv+=(strlen(tok));
tok=strtok(NULL,delim);
}
//scriu rezultatele
lstr=strlen(linie);
r=lstr/cuv;
fout<<r;
//inchid fisierele
fin.close(); fout.close();
return 0;
}