!!!!!WAZNE C++!!!!!!
Koło Młodych Miłośników Łamania Szyfrów pracuje nad oprogramowaniem służącym do odszyfrowania pewnego starożytnego manuskryptu. Jądrem systemu zostanie samouczący się analizator tekstu, a jego pierwszym modułem "zliczacz liter", którego opracowanie powierzono Tobie.

Zadanie

Opracuj program, który:
wczyta ze standardowego wejścia tekst do analizy,
dla każdej litery obliczy liczbę jej wystąpień w tekście,
wypisze wynik na standardowe wyjście.

Wejście

W pierwszym wierszu wejścia znajduje się liczba N, oznaczająca liczbę wierszy tekstu do analizy N<=150. W każdym z następujących N znajduje się ciąg złożony z maksymalnie 200 znaków spośród małych i wielkich liter alfabetu łacińskiego ('a'..'z', 'A'..'Z') oraz spacji.

Wyjście

W kolejnych wierszach należy wypisywać litery od 'a' do 'z' i od 'A' do 'Z' (w tej kolejności), pojedynczą spację oraz liczbę oznaczającą ilość wystąpień tej litery w analizowanym tekście. Litery nie występujące w tekście należy pominąć.

Przykład

Dla danych wejściowych:

2

ala ma kota

Ola ma psa

poprawną odpowiedzią jest:

a 7

k 1

l 2

m 2

o 1

p 1

s 1

t 1

O 1

1

Odpowiedzi

2010-03-31T11:56:15+02:00
Mam tu stary zliczacz, ktory robilem na spoja, powinien dzialac, jakby co to pisz;)

#include <iostream>

using namespace std;

void zapelnij(int tablica[]);
void wyswietl (int tablica[],int);
int main()
{

int tablica[58];
zapelnij(tablica);
int i = 0;
cin >> i;
for(int a=0;a<i;a++)
{
char * linia = new char[200];
cin >> linia;
for(int x=0;x<strlen(linia);x++)
{

tablica[((int)linia[x]-65)]++;
}
delete [] linia;
}
for (int z=0;z<26;z++)
{
wyswietl(tablica,z+32);
}
for (int k=0;k<26;k++)
{
wyswietl(tablica,k);
}
return 0;
}
void zapelnij(int tablica[])
{
for(int i=0;i<58;i++)
{
tablica[i]=0;
}
}
void wyswietl (int tablica[],int z)
{
if(tablica[z] != 0)
{
cout << (char) (z+65) << " " << tablica[z] << endl;
}
return 0;
}