Exercitii rezolvate
In general, in exercitii, vom considera ca sirul de elemente incepe de la pozitia 1 chiar daca din maxim total de elemente vom avea cu un element mai putin.
Pentru mai multe exercitii vizitati si meniul Exercitii in C++
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;
}
4. Se citesc numere reale pana la introducerea primului numar negativ care nu face parte din sir. Care este media elementelor din sir?
#include<iostream.h>
float a[10],s;
int i,n;
void main()
{
cout<<"dati elementele:\n";
n=1;
cin>>a[1];
while(a[n]>=0)
{n++;cin>>a[n];
}
n--;
cout<<"n="<<n;
cout<<"\nelementele citite\n";
for(int i=1;i<=n;i++)cout<<a[i];
//calculam media elementelor; e nevoie sa gasim suma elementelor
s=0;
for(i=1;i<=n;i++)s=s+a[i];
cout<<"media="<<s/n<<endl;
}
5. Se citesc n numere reale. Sa se afisese perechile de cate 3 numere aflate in vector pe pozitii succesive care indeplinesc proprietatea ca al 3 este media primelor 2.
#include<iostream.h>
float a[100];
int 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];
}
cout<<"\nelementele citite\n";
for(i=1;i<=n;i++)cout<<a[i]<<" ";
cout<<"\n";
//cautare
cout<<"\ntripletele cautate \n";
for(i=3;i<=n;i++)
if((a[i-2]+a[i-1])/2==a[i])cout<<a[i-2]<<" "<<a[i-1]<<" "<<a[i]<<endl;
}
6. Se citesc caractere pana la introducerea caracterului ‘*’. Cate vocale s-au citit?
#include<iostream.h>
char a[10];
int i,n,c;
void main()
{
cout<<"dati elementele:\n";
n=1;
cin>>a[1];
while(a[n]!='*')
{n++;cin>>a[n];
}
n--;
cout<<"n="<<n;
cout<<"\nelementele citite\n";
for(int i=1;i<=n;i++)cout<<a[i];
//contor pentru numarul de vocale
c=0;
for(i=1;i<=n;i++)
if(a[i]=='A'||a[i]=='a'||a[i]=='e'||a[i]=='E'||a[i]=='I'||a[i]=='i'||a[i]=='O'||a[i]=='o'||a[i]=='U'||a[i]=='u')
c++;
cout<<"nr vocale="<<c<<endl;
}
7. Se citesc de la tastatura n numere si un numar x. Pe ce pozitii se gaseste x in sirul de numere citit si de cate ori?
#include<iostream.h>
int a[100],n,x,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;
//contor pentru numerele cautate
c=0;
cout<<"\npozitiile unde se gaseste x\n";
for(i=1;i<=n;i++)
if(a[i]==x){c++;cout<<i<<" ";}
cout<<"\nnr="<<c<<endl;
}
8. Se citesc n numere natural. Pe ce pozitii se gasesc numerele prime?
#include<iostream.h>
int a[100],n,prim;
int j;
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<<"\npozitiile din vector unde se gasesc numere prime\n";
//parcurgem sirul; daca gasim un numar prim scriem pozitia elementului in sir
for(i=1;i<=n;i++)
{//presupunem ca a[i] este prim (prim==1)
prim=1;
if(a[i]<2)prim=0;
j=2;
while(j<=a[i]/2 && prim==1)
if(a[i]%j==0)prim=0;
else j++;
if(prim)cout<<i<<" ";
}
}
9. Se citesc de la tastatura numere pana la introducerea primului numar mai mic sau egal cu 0. Sa se afiseze suma cifrelor pentru fiecare numar.
#include<iostream.h>
int a[10];
int i,n,u,s=0,x;
void main()
{
cout<<"dati elementele:";
n=1;
cin>>a[1];
while(a[n]>0)
{n++;cin>>a[n];
}
n--;
cout<<"n="<<n;
cout<<"\nelementele citite\n";
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
//gasim suma cifrelor pentru fiecare element
for(i=1;i<=n;i++)
{x=a[i];
s=0;
while(x!=0)
{u=x%10;
x=x/10;
s=s+u;
}
cout<<"\nsuma cifrelor lui "<<a[i]<<" este "<<s<<"\n";
}
}
10. Se citesc de la tastatura n numere. Sa se verifice dace numerele s-au citit in ordine crescatoare.
#include<iostream.h>
int a[100],n,crescator;
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]<<" ";
//presupunem ca numerele sunt in ordine crescatoare
crescator=1;
//daca 2 numere alaturate nu sunt in ordine crescatoare schimbam valoarea lui crescator
i=1;
while(i<n&&crescator==1)
if(a[i]>a[i+1])crescator=0;
else i++;
if(crescator==1)cout<<"\nsir crescator\n";
else cout<<"\nsirul nu este crescator\n";
}
11. Sa se afiseze valoarea elementului maxim dintr-un sir de n numere citite de la tastatura si de cate ori apare in cele n numere citite.
#include<iostream.h>
int a[100],n,max,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]<<" ";
//cautam maximul
max=a[1];
for(i=1;i<=n;i++)
if(a[i]>max)max=a[i];
cout<<"\nmax="<<max<<endl;
//contor pentru numerele egale cu max
c=0;
for(i=1;i<=n;i++)
if(a[i]==max)c++;
cout<<"numarul de elemente maxime="<<c;
}