PROBLEMA 1
Se citeşte de la tastatura o propoziţie terminata cu ENTER.
Cuvintele ce formează propoziţia sunt despărţite printr-un singur spaţiu. Sa se afişeze fiecare cuvânt din propoziţie
pe cate un rând.
char
s1[150], s2[150];
void
main (void)
{
gets (s1);
int i=0, j;
while (s1[i])
{
j=0;
while ((s1[i]!='
')&&(s1[i]!='\0')) s2[j++]=s1[i++];
s2[j]='\0';
i++;
cout << endl<< s2;
}
}
PROBLEMA 2
Se citeşte de la tastatura o propoziţie terminata cu
PUNCT Cuvintele ce formează propoziţia
sunt despărţite prin unul sau mai multe spatii Sa se afişeze fiecare cuvânt din propoziţie
pe cate un rând.
char s1[150],
s2[150];
void main (void)
{
int i, j;
for (i=0;
(s1[i]=getche())!='.'; i++);
s1[i]='\0'; i=0;
while
(s1[i])
{
j=0;
while
((s1[i]!=' ') && (s1[i]!='\0'))
s2[j++]=s1[i++];
s2[j]='\0';
while
(s1[i] && s1[i]==' ') i++;
cout
<< endl<< s2;
}
}
PROBLEMA 3
Se citeşte de la tastatura o propoziţie terminata cu PUNCT Cuvintele ce formează propoziţia sunt
despărţite prin unul sau mai multe spatii.
Sa se calculeze de cate ori apare fiecare litera din propoziţie in
propoziţie.
char s1[150], s2[150], c;
int nr;
void main (void)
{
clrscr();
int i=0,
j;
for (;
(s1[i]=getche())!='.'; i++);
for
(c='a'; c<='z'; c++)
{
i=0;
nr=0;
while
(s1[i])
{
if
(s1[i]==c) nr++;
i++;
}
if (nr==1) cout
<<endl<<"Litera "<<c<<" apare o singura
data";
if (nr>1) cout
<<endl<<"Litera "<<c<<" apare de
"<<nr<< " ori";
}
for (c='A'; c<='Z'; c++)
{
i=0;
nr=0;
while
(s1[i])
{
if
(s1[i]==c) nr++;
i++;
}
if (nr==1) cout
<<endl<<"Litera "<<c<<" apare o singura
data";
if (nr>1) cout <<endl<<"Litera
"<<c<<" apare de "<<nr<< "
ori";
}
getch();
}
PROBLEMA 4
Se citeste o propozitie terminata cu punct. Cuvintele sunt despartite printr-un singur
spatiu.
Sa se afiseze fiecare cuvant din propozitie pe cate un rand si in
dreapta sa inversul sau.
char
s[200], p[30], q[30];
int
i,j,k;
void main (void)
{
clrscr();
for (i=0; (s[i]=getche())!='.';i++);
s[i]=’\0’;
for (i=0,cout<<endl ; s[i] ;
i++,cout<<q<<endl)
{
for (j=0; s[i] && s[i]!=32;
p[j++]=s[i++]);
p[j]=0;
for(k=0,cout<<p<<"
"; j ; q[k++]=p[--j]);
q[k]=0;
}
getch();
}
PROBLEMA 5
Se citeşte o propoziţie terminată cu punct. Cuvintele sunt despărţite printr-un singur
spaţiu. Să se înlocuiască fiecare litera
mică din şir cu litera mare corespunzătoare si fiecare litera mare cu litera
mică corespunzătoare.
char s[200];
int i;
void main (void)
{
clrscr();
for (i=0;
(s[i]=getche())!='.';i++);
s[i]=0;
cout
<<endl; puts(s);
for
(i=0;s[i];i++)
if
(('a'<=s[i]) && (s[i]<='z'))
s[i]-=32;
else
if
(('A'<=s[i]) && (s[i]<='Z'))
s[i]+=32;
cout
<<endl; puts(s);
getch();
}
PROBLEMA 6
Se citeşte un cuvânt. Să se decidă dacă este palindrom.
char s[200],ok=1;
int i,j;
void main (void)
{
clrscr();
cin >>
s;
for (i=0;
s[i]; i++);
for (j=0;
j<=(i-1)/2+(i-1)%2 && ok; j++)
ok=(s[j]==s[i-1-j]);
ok ?
cout<<"DA": cout<<"NU";
getch();
}
PROBLEMA 7
Se citeşte o propoziţie terminată cu punct. Cuvintele sunt despărţite printr-un singur
spaţiu. Să se afiseze cuvântul de lungime maximă.
char s[200];
int i,j,k=0, max=0,
poz_max=0;
void main (void)
{
clrscr();
for (i=0; (s[i]=getche())!='.';i++);
s[i]=0;
for (i=0;
s[i] ; i++)
{
for
(j=0, k=i; s[i] && s[i]!=32; i++,j++);
if
(j>max)
{
max=j;
poz_max=k;
}
}
for
(cout<<endl,i=poz_max; s[i]&&s[i]!=' '; cout<<s[i++]);
getch();
}
PROBLEMA 8
Se citesc 2 cuvinte a si b. Sa se determine daca sunt anagrame.
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
char a[30],b[30];
cin>>a>>b;
if(strlen(a)!=strlen(b)) cout<<"nu";
else
{
int ok=1;
while(strcmp(a,b)!=0 && ok)
{
if(strchr(b,a[0])!=0)
{
strcpy(strchr(b,a[0]), strchr(b,a[0])+1);
strcpy(a,a+1);
}
else ok=0;
}
if(ok) cout<<"da";
else cout<<"nu";
}
system("PAUSE");
return 0;
}
PROBLEMA 9
| Spunem
ca doua cuvinte "rimeaza" daca sufixele incepand de la ultima vocala
sunt identice. Sa se scrie un program care citeste doua cuvinte a si b
si determina daca ele "rimeaza".
Ex: Diana si Sana "rimeaza" |
#include<iostream.h>
#include<string.h>
int main()
{
char a[100], b[100], s1[100], s2[100],v[]="aeiou";
cin>>a>>b;
int i;
for(i=0;i<strlen(a);i++)
if(strchr(v,a[i]))
strcpy(s1,a+i);
for(i=0;i<strlen(b);i++)
if(strchr(v,b[i]))
strcpy(s2,b+i);
if(strcmp(s1,s2)==0)
cout<<"Rimeaza.";
else
cout<<"Nu rimeaza.";
return 0;
}
PROBLEMA 10
Se citeste un cuvant a cu cel mult 100 de litere. Sa se stearga toate perechile de cate 2 litere alaturate identice. Daca prin stergere se obtin alte perechie de litere identice sa se stearga si acestea. Exemplu: din cuvantul abbapxsiisxh se obtine ph (prin eliminari succesive:aapxssxh, pxxh si apoi ph )
int main()
{
char a[100];
int i;
cin >> a;
for ( i = 0 ; i < strlen(a) - 1; i++ )
{
if ( a[i] == a[i+1] )
{
strcpy ( a + i , a + i + 2 );
i--;
i--;
}
}
cout << a;
system("pause");
return 0;
}
PROBLEMA 11
Din fisierul sir.in se citeste un text. Afisati cate cuvinte incep si se termina cu vocala. Ex: Ana are opt mere se va afisa 2.
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
char s[201], v[]="aeiouAEIOU";
int k=0;
ifstream fin("sir.in");
while(fin>>s)
if(strchr(v,s[0]) && strchr(v,s[strlen(s)-1])) k++;
if(k) cout<<k;
else cout<<"nu exista";
return 0;
}
PROBLEMA 12
Se citeste un cuvant c cu cel mult 20 de litere. Sa se elimine din cuvantul c toate aparitiile primei litere. Exemplu: c="anamaria" dupa prelucrare ramane "nmri"
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char c[21],x;
cin>>c;
x=c[0];
for(int i=0;i<strlen(c);i++)
if(x==c[i])
{
strcpy(c+i,c+i+1);
i--;
}
cout<<c;
return 0;
}
PROBLEMA 13
Se citeste un numar natural n si apoi n cuvinte formate din cel mult 20 de litere fiecare. Da se afiseze cel mai lung cuvant care se poate forma cu doua cuvinte dintre cele citite. Exemplu: 6 arici iepure cal hipopotam oaie pastrav Cel mai lung cuvant poate fi hipopotampastrav sau pastravhipopotam
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[21],m1[21]="",m2[21]="";
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a;
if(strlen(a)>strlen(m1))
{
strcpy(m2,m1);
strcpy(m1,a);
}
else if(strlen(a)>strlen(m2)) strcpy(m2,a);
}
cout<<m1<<m2;
return 0;
}
PROBLEMA 14
| Se
citeste de la tastatura un text cu cel mult 100 de caractere (doar
litere ale alfabetului englez si spatii). Construiti si apoi afisati pe
ecran sirul de caractere obtinut din sirul initial prin inserarea dupa
fiecare vocala a caracterului *. Se considera vocale literele a, e, i,
o, u, A, E, I, O, U.
Daca textul citit nu contine vocale text se va afisa nemodificat. Exemplu: dacã se citeste textul "Examenul de bacalaureat" se va obtine si afisa: "E*xa*me*nu*l de* ba*ca*la*u*re*a*t". | ||||
|
Niciun comentariu:
Trimiteți un comentariu