Biletul 16 Atestat Informatica Programare

Biletul nr. 16 pentru atestat informatica la programare 2015

Codul sursa al problemei in C++ de mai jos afiseaza elementul care apare de cele mai multe ori intr-un tablou iar rezultatul este scris intr-un fisier date.out.

Enuntul problemei:

16. Se citeste de la tastatura un tablou unidimensional cu n elemente numere intregi. Sa se afiseze elementul care apare de cele mai multe ori in tablou. Daca exista mai multe astfel de elemente, se vor afisa toate.
Ex. Pentru n=8 si elementele (23,7,11,7,19,7,11,11) se vor afisa elementele 7 si 11, care apar fiecare de cate 3 ori.

Rezolvarea problemei

# include <iostream.h>
# include "functii.txt"
int apare(int x[],int n,int k)
{
int ap=0;
for(int i=1;i<=n;i++)
if(x[i]= =k)
ap++;
return ap;
}
void sterge(int x[],int n,int k)
{
for(int i=1;i<=n;i++)
{
if(x[i]= =k)
{
for(int j=i;j<n;j++)
x[j]=x[j+1];
n--;
}
}
}
int max(int x[],int n)
{
int mx=x[1];
for(int i=2;i<=n;i++)
if(x[i]>mx)
mx=x[i];
return mx;
}
void main()
{
int x[50],j,n,ap[50],max,i;
citeste(x,n);
for(i=1;i<=n;i++)
ap[i]=apare(x,n,x[i]);
for(i=1;i<=n;i++)
if(max(ap,n)==ap[i])
{cout<<x[i]<<" ";
for(j=i;j<=n;j++)
{if(x[i]= =x[j])
{
sterge(x,n,x[j]);
sterge(x,n,x[i]);
}
}
}
}

Scris de AtestateLaInformatica.ro

0