You are on page 1of 7

PROBLEME REZOLVATE IN C++

1. S se verifice dac un numr este pozitiv.


#include<iostream.h>
void main()
{
int a;
//citim numarul
cout<<"a=";cin>>a;
//verificam daca numarul este pozitiv
if(a>=0) cout<<"numar pozitiv";
else cout<<"numarul negativ";
}

2. S se verifice dac un numr aparine intervalului [a,b]. a i b sunt numere reale citite de la
tastatur.
#include<iostream.h>
void main()
{float a,b,n;
//citim datele de intrare: a,b si numarul dat
cout<<"a=";cin>>a;
cout<<"b=";cin>>b;
cout<<"n=";cin>>n;
//verificam daca numarul n apartine intervalului [a,b]
if(n>=a and n<=b)cout<<n<<" apartine intervalului [a,b]";
else cout<<n<<" nu apartine intervalului [a,b]";
}

3. S se verifice daca 3 numere citite de la tastatura sunt nule.


#include<iostream.h>
void main()
{float a,b,c;

//citim datele de intrare: a,b si numarul dat


cout<<"a=";cin>>a;
cout<<"b=";cin>>b;
cout<<"c=";cin>>c;
//verificam daca numerele sunt nule
if(a==0 && a==0 && c==0)cout<<" toate numerele sunt nule";
else cout<<" nu sunt toate nule";
}
1. Se citesc de la tastatura n elemente. Cate dintre ele fac parte din intervalul [x,y]? x si y se citesc de
la tastatura.
#include<iostream.h>
int a[100],n,x,y,c;
void main()
{
cout<<"numarul de elemente: ";cin>>n;
cout<<"elementele\n";
for(int i=1;i<=n;i++)
{
cout<<"a["<<i<<"]=";cin>>a[i];
}
cout<<"\ns-au citit elementele: ";
for(i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<"\nx=";cin>>x;
cout<<"\ny=";cin>>y;
//contor pentru numerele cautate
c=0;
for(i=1;i<=n;i++)
if(a[i]>=x&&a[i]<=y)c++;
cout<<"\nnr="<<c<<endl;\
}

2. Se citesc de la tastatura n numere. Care sunt pozitiile din vector unde se gasesc elemente pare?
#include<iostream.h>
int a[100],n;
void main()
{
cout<<"numarul de elemente: ";cin>>n;
cout<<"elementele\n";
for(int i=1;i<=n;i++)
{
cout<<"a["<<i<<"]=";cin>>a[i];
}
for(i=1;i<=n;i++)
if(a[i]%2==0)cout<<i<<" ";
}

3. Se citesc n elemente reale. Care este suma elementelor aflate pe pozitii impare in vector?
#include<iostream.h>
int a[100],n,s=0;
void main()
{
cout<<"numarul de elemente: ";cin>>n;
cout<<"elementele\n";
for(int i=1;i<=n;i++)
{
cout<<"a["<<i<<"]=";cin>>a[i];
}
//suma elementelor de pe pozitii impare
for(i=1;i<=n;i++)
if(i%2==1)s=s+a[i];
cout<<"s="<<s;

}
1. Se citete un text ntr-o variabil de tip string, in care cuvintele se despart prin spaii. Se cere:
a) S se afieze cuvintele n ordine alfabetic;
b) S se numere cuvintele cu minim 4 vocale distincte
#include <iostream.h>
#include <conio.h>
#include <string.h>
void main()
{
char text[100],*p, separator[]=" ", cuv[10][10], cuvant[10], aux[10] ; int nrv=0,voc, nr, k, i, j;
cout<<"Dati sirul:";cin.get(text,100);
strcpy(p,text) ;
p=strtok(p,separator) ;
while(p)
{
strcpy(cuv[++nr],p);
p=strtok(NULL,separator);
}
for(i=1;i<nr;i++)
for(j=i+1;j<=nr;j++)
if(strcmp(cuv[i],cuv[j])>0)
{
strcpy(aux,cuv[i]);
strcpy(cuv[i],cuv[j]);
strcpy(cuv[j],aux);
}
for(i=1;i<=nr;i++)
cout<<cuv[i];
for(i=1;i<=nr;i++)
{
voc=0;
strcpy(cuvant,cuv[i]);
k=strlen(cuvant) ;
for(j=0;j<k;j++)
{switch(cuvant[j])
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':{voc++; break;}
}}
if (voc>=4) nrv++ ;
}
cout<<nrv;
getch();
}
2. Fiierele cuv1.txt i cuv2.txt conin cuvinte, cte un cuvnt pe linie n ordine alfabetic. S se
construiasc fiierul cuv3.txt care s conin toate cuvintele din cele dou fiiere, n ordine alfabetic.
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include<fstream.h>
#include<stdio.h>
void main()
{char a[10], b[10], cuv[10][20], aux[10]; int i,j,nr=0;

clrscr();
fstream f("cuv1.txt", ios::in);
while(f.getline(a,10))strcpy(cuv[++nr],a);
ifstream g("cuv2.txt");
while(g.getline(b,10))strcpy(cuv[++nr],b);
for(i=1;i<nr;i++)
for(j=i+1;j<=nr;j++)
if(strcmp(cuv[i],cuv[j])>0)
{
strcpy(aux,cuv[i]);
strcpy(cuv[i],cuv[j]);
strcpy(cuv[j],aux);
}
for(i=1;i<=nr;i++)
cout<<cuv[i]<<endl;
getch();}
3. n fiierul date.in sunt scrise mai multe cuvinte cte unul pe fiecare linie din fiier. Se cere:
a) S se determine numrul de cuvinte din fiier;
b) S se afieze cuvintele care ncep cu o vocal.
#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<conio.h>
void main()
{
char a[10]; int k, i, nr=0;
clrscr();
fstream f("date.in",ios::in);
while(f.getline(a,10))
{if(a[0]=='a'||a[0]=='e'||a[0]=='i'||a[0]=='o'||a[0]=='u') cout<<a<<endl; nr++;
}
cout<<nr;
}
La o staie de benzin exist mai multe maini caracterizate prin numr, marc i culoare. Se cere:
a) S se determine numrul mainilor Dacia;
b) S se ordoneze mainile dup culoare.
#include<iostream.h>
#include<string.h>
#include<conio.h>
typedef struct
{char marca[20],culoare[20],med[20];
int nr;}masina ;
masina a[20];
int n,x,k;
void citire()
{int i;
cout<<"n=";cin>>n;
for (i=1;i<=n;i++)
{cout<<"a[i].marca: ";cin>>a[i].marca;
cout<<"a[i].culoare: ";cin>>a[i].culoare;
cout<<"a[i].numar: ";cin>>a[i].nr;
}
}
void nr_dacia()
{ int i;
int nr=0;

for (i=1;i<=n;i++)
{x=strcmp(a[i].marca,"dacia");
if (x==0) nr=nr+1;}
cout<<"numarul de masini Dacia este "<<nr<<"\n";
}
void sortare()
{ int i,j;masina aux;
for (i=1;i<=n-1;i++)
for (j=i+1;j<=n;j++)
{x=strcmp(a[i].culoare,a[j].culoare);
if(x>0)
{aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
for (i=1;i<=n;i++)
cout<<a[i].culoare<<" "<<a[i].marca<<" "<<a[i].nr<<endl;
}
void main()
{
citire();
nr_dacia();
sortare();
}
Pentru evidena produselor cosmetice dintr-un depozit, se definete o structur cu urmtoarele
informaii: codul produsului, denumire, preul produsului. Citii informaiile tuturor produselor i afiai
produsele cu noile preuri (valoarea lui x este 7 dac codul produsului este mai mic dect 500. i 11 n
caz contrar). Afiai produsele cu cel mai mare pre dup scumpire.

#include<iostream.h>
#include<string.h>
#include<conio.h>
typedef struct
{int cod,c,p,pret;
char den[20];}produse;
produse a[20];
int n,i,c,p;
void citire()
{
cout<<"Dati numarul de produse ";cin>>n;
for (i=1;i<=n;i++)
{cout<<"codul produsului ";cin>>a[i].cod;
cout<<"pretul produsului ";cin>>a[i].pret;
cout<<"denumirea produsului ";cin>>a[i].den;}
}
void rezolvare()
{
for (i=1;i<=n;i++)
if(a[i].cod<500) a[i].pret=7;
else a[i].pret=11;
for (i=1;i<=n;i++)
cout<<"pretul "<<a[i].den<<" este "<<a[i].pret<<"\n";
cout<<endl;
for (i=1;i<=n;i++)

if(a[i].pret==11) cout<<a[i].den<<"\n";
}
void main()
{
citire();
rezolvare();
}
Se citesc de la tastatur numele i media general a n elevi. Se cere s se afieze lista elevilor n
ordinea descresctoare a mediilor.
#include<iostream.h>
#include<string.h>
typedef struct elev{
char nume[50];
float medie;
};
elev a[100],aux;
int n;
void citire()
{int i;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"a[i].nume: ";cin>>a[i].nume;
cout<<"a[i].medie: ";cin>>a[i].medie;
}
}
void sortare()
{int i,j;
for(i=1;i<n;i++)
{for(j=i+1;j<=n;j++)
if(a[i].medie<a[j].medie)
{aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
}
void afisare()
{int i;
for(i=1;i<=n;i++)
cout<<a[i].nume<<" "<<a[i].medie<<endl;
}
void main()
{citire();
cout<<"lista de elevi\n";
afisare();
sortare();
cout<<"dupa sortare\n";
afisare();
}

You might also like