Informatică, întrebare adresată de Cristian21crs, 8 ani în urmă

Ajutor va rog!!!
Trebuie lucrata in C++ cu subprograme
Se da un vector cu n componente numere intregi.
-Afisati componentele de la ultima catre prima
-Calculati suma componentelor de pe pozitii pare
-Care este media aritmetica a componentelor negative din vector
-Verificati daca maximul din vector este numai palindrom
-Daca da afiseaza componentele prime
-Daca nu afiseaza minimul si pozitia lui in vector.

Răspunsuri la întrebare

Răspuns de Daniel4761
1

#include <iostream>

using namespace std;

void citire_vector(int n, int a[50])

{

int i;

for(i=1;i<=n;i++){

 cout<<"a["<<i<<"]="; cin>>a[i];

}

}

void afisare(int n, int a[50])

{

int i;

for(i=n;i>=1;i--)

 cout<<a[i]<<' ';

}

int suma(int n, int a[50])

{

int i, s=0;

for(i=2;i<=n;i=i+2)

 s=s+a[i];

return s;

}

float media_aritmetica(int n, int a[50])

{

int i, s=0, nr=0;

float ma;

for(i=1;i<=n;i++)

 if(a[i]<0)

 {

  s=s+a[i]; nr++;

 }

ma=(float)s/nr;

return ma;

}

int maxim(int n, int a[50])

{

int i, max=a[1];

for(i=2;i<=n;i++)

 if(max<a[i])

  max=a[i];

return max;

}

int palindrom(int n)

{

int inv=0, c=n;

while(c)

{

 inv=inv*10+c%10;

 c=c/10;

}

if(inv==n)

 return 1;

return 0;

}

void prime(int n, int a[50])

{

int i, d, prim;

for(i=1;i<=n;i++)

{

 prim=1;

 for(d=2;d<=a[i]/2;d++)

  if(a[i]%d==0)

   prim=0;

 if(prim)

  cout<<a[i]<<' ';

}

}

void minim(int n, int a[50])

{

int i, min=a[1], p=1;

for(i=2;i<=n;i++)

 if(min>a[i])

 {

  a[i]=min; p=i;

 }

cout<<"Minim:"<<min<<'\n';

cout<<"Pozitie:"<<' '<<p; cout<<'\n';

}

int main()

{

int n, a[50], i, max;

cout<<"n="; cin>>n;

citire_vector(n,a);

afisare(n,a); cout<<'\n';

cout<<"Suma="<<suma(n,a)<<'\n';

cout<<"Media aritmetica:"<<media_aritmetica(n,a)<<'\n';

max=maxim(n,a);

if(palindrom(max))

 prime(n,a);

else minim(n,a);

return 0;

}

Alte întrebări interesante