Cod sursa(job #78675)

Utilizator Dr.OptixCristian Dinu Dr.Optix Data 18 august 2007 23:43:18
Problema Text Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.95 kb
/*******************************************************************************
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;
}