Sunteți pe pagina 1din 5

-19 DECEMBRIE

EVALUARE: GRILE, +
PB PE CALCULATOR

Scrieţi un program C/C++ care citeşte de la tastatură un şir de cel mult 50 de caractere (litere
mici şi mari ale alfabetului englez, cifre şi spaţii) şi afişează pe ecran litera mică cel mai des
întâlnită în şirul citit. Dacă există mai multe litere mici cu număr maxim de apariţii, programul o
va afişa pe prima dintre ele în ordine alfabetică. Dacă şirul nu conţine litere mici, atunci pe
ecran se va afişa mesajul nu. Exemplu: dacă se citeşte şirul:

///V60 cu FRECVENTA

#include <iostream>
#include <string.h>

using namespace std;

int main()
{
char s[51];
cin.getline(s,50);
int f[27]={0}, nn;
for(int i=0;i<strlen(s);i++)
if(s[i]>='a' && s[i]<='z')
f[s[i]-96]++;///frecventa literei din sir
int maxx=0;
for(int i=1;i<=26;i++)///determinam frecventa maxima
if(f[i]>maxx)
{
maxx=f[i];
nn=i;///retinem in nn pozitia primei litere din alfabet de frecventa maxima
}
if(maxx==0)
cout<<"nu";
else
cout<<(char)(nn+96);///afisam caracterul de cod asci stabilit
return 0;
}

V 60 FARA FRECVENTA
#include <iostream>

using namespace std;


int main()
{
char s[50];
cin.getline (s,49);
int cnt=0;
int maxi=-100;
int cmax='z';
for (int i=0;s[i]!=NULL;i++)///parcurgem sirul
{
cnt=0;
if (s[i]!=' ' && s[i]>='a' && s[i]<='z')/// verificam daca caracterul este diferit de spatiu si daca
este litera mica
{
for (int j=i;s[j]!=NULL;j++)
if (s[j]==s[i])
cnt++;/// daca mai gasim litera crestem contorul
}
if (cnt>maxi)
{
maxi=cnt;
cmax=s[i];

}
if (cnt==maxi && s[i]<=cmax)
{
cmax=s[i];
}

}
cout<<char(cmax);/// afisam litera cu numarul maxim de aparitii
return 0;
}

V60
#include <iostream>
#include <string.h>
using namespace std;

int main()
{
char s[50],litera;
cin.get(s,49);
int maxy,nrap,ok;
maxy=0;
ok=0;
for(int i=0; i<strlen(s); i++)
{
nrap=0;
for(int j=i+1; j<strlen(s); j++)
{
///daca este litera
if(s[i]>='a' && s[i]<='z')
{
if(s[i]==s[j])///daca este aceeasi litera
{
///crestem numarul de aparitii
ok=1;///avem litere mici
nrap++;
}
}
if(nrap>maxy)
{
///maxim primeste nr. de aparitii
maxy=nrap;
litera=s[i];
}
else if(nrap==maxy)
{
if(litera<s[i])
litera=s[i];
///vedem care litera este prima in alfabet
}
}
}
if(ok==1)
cout<<litera;
else
cout<<"nu";
///daca nu avem litere mici
return 0;
}

V62
#include <iostream>
#include <string.h>
using namespace std;

int main()
{
char s[256];
cin.get(s,255);
int ok;
for(int i=0; i<strlen(s); i++)
{
if(s[i]!=' ' && 'a'<=s[i] && s[i]<='z') ///testam daca e litera minuscula
///comparam litera cu toate literele precedente
{
ok=1;
for(int j=0; j<i; j++)
if(s[i]==s[j])
ok=0;
if(ok==1)
cout<<s[i]<<" ";
}
}
return 0;
}

Scrieţi un program C/C++ care citeşte de la tastatură un text format din cel mult 200 de litere
ale alfabetului englez, în care cuvintele sunt separate printr-un singur spaţiu şi afişează pe
ecran numărul de cuvinte din textul citit, care au prima respectiv ultima literă vocală. În cazul în
care în text nu există un astfel de cuvânt, se va afişa pe ecran mesajul NU EXISTA. Se consideră
vocală orice literă din mulţimea {a,A,e,E,i,I,o,O,u,U}. 5. Exemplu: dacă textul introdus este:
Eratostene a sugerat ca anii bisecti se repeta la fiecare patru ani pe ecran se va afişa: 4

V64 an 2009 II. 5


#include <iostream>
#include <string.h>
using namespace std;
/**
Scrieţi un program C/C++ care citeşte de la tastatură un text format din cel mult 200 de
litere ale alfabetului englez, în care cuvintele sunt separate printr-un singur spaţiu şi
afişează pe ecran numărul de cuvinte din textul citit, care au prima respectiv ultima literă
vocală. În cazul în care în text nu există un astfel de cuvânt, se va afişa pe ecran mesajul
NU EXISTA.**/
int main()
{
char s[200], *p, sep[2]=" ", cop[30];
int ct=0;
cin.getline(s, 199);
///extragem cuvintele in p
p=strtok(s, sep);
while(p)
{
strcpy(cop, p);
if(strchr("AaEeIiOoUu", cop[0]) && strchr("AaEeIiOoUu", cop[strlen(cop)-1]))
///verificam daca cuv incepe si se termina cu vocale
ct++;
p=strtok(NULL, sep);
}
cout<<"sunt "<<ct<<" cuvinte cu proprietatea data";
return 0;
}

S-ar putea să vă placă și