Cod sursa(job #497288)

Utilizator newbieFMI - Cristina Andrei newbie Data 1 noiembrie 2010 23:09:25
Problema Text Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.59 kb
#include <fstream>
#include <string>
#define MAX 1000000

using namespace std;

char t[MAX];
    
int main() {
    ifstream f("text.in");
    ofstream g("text.out");
    int len, i, nrWord = 0, nrLetter = 0;
    //f.get(t,MAX);
    //g << t << endl;
    //len = strlen(t);
    //i = 0;
	//char c;
    
	/*while (!f.eof()) {
		f.get(c);
		while ( (!f.eof()) && (((c>='a') && (c<='z')) || ((c>='A') && (c<='Z'))) ) {
			nrLetter++;
			f.get(c);
			cout << c << " ";
		}
		if ((!f.eof()) && (!(((c>='a') && (c<='z')) || ((c>='A') && (c<='Z'))))) nrWord++; // nu e bine, daca incep cu un caracter diferit de litera, imi incrementeaza cuvantul, bleah!
		while ( (!f.eof()) && (!isalpha(c)) ) {
			f.get(c);
		}
	}*/
	
	/*while (!f.eof()) {
		f.getline(t,MAX);
		len = strlen(t);
		i = 0;
		while ( i < len ) {
			if ( isalpha(t[i]) ) { 
				nrLetter++; 
				if ( i == len - 1 ) 
					nrWord++; 
			}
			else 
				if ((i != 0) && (isalpha(t[i-1]))) nrWord++;
			i++;
		}
	}*/

    while (!f.eof()) {
        f.getline(t,MAX);
        len = strlen(t);
		i = 0;
        while ( i < len ) {
            while ( (i < len) && (isalpha(t[i])) ) { 
                i++;
                nrLetter++;
            }
            if ( i > 0 ) nrWord++;
            while ( (i < len) && !(isalpha(t[i])) ) { 
                i++;
            }
        }
    }
    
    if ( !nrWord ) 
        g << 0;
    else {
//        g << "litere : " << nrLetter << endl;
//        g << "cuvinte : " << nrWord << endl;       
        g << nrLetter / nrWord;    
    }
    
    return 0;
}