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
#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;
}