Se considera un vector de dimensiuni n cu elemente numere intregi . Sa se scrie un program care calculeaza a) suma elementelor vectorului impare si divizibile cu 3 , folosind un subprogram b) Elementul maxim al vectorului , folosind un suprogram
Răspunsuri la întrebare
Răspuns:
#include <iostream>
int calculeazaSuma(int vectorNumere[], int dimensiuneVector);
int aflaNumarulMaxim(int vectorNumere[], int dimensiuneVector);
int main()
{
int dimensiuneVector = 0, vectorNumere[50] = {}, sumaNumere = 0, numarMaxim = 0;
std::cout << "Introdu numarul de elemente din vector >> ";
std::cin >> dimensiuneVector;
/* citim numerele in vector */
for (int i = 0; i < dimensiuneVector; i++)
{
std::cout << "vectorNumere[" << i << "] = ";
std::cin >> vectorNumere[i];
}
/* calculăm suma numerelor impare divizibile cu 3 din vector */
sumaNumere = calculeazaSuma(vectorNumere, dimensiuneVector);
/* calculăm maximul din vector */
numarMaxim = aflaNumarulMaxim(vectorNumere, dimensiuneVector);
/* și le afișăm */
std::cout << "Suma numerelor impare divizibile cu 3: " << sumaNumere << "\nNumarul maxim din vector: " << numarMaxim << "\n";
return 0;
}
int calculeazaSuma(int vectorNumere[], int dimensiuneVector)
{
int sumaNumere = 0;
/* parcurgem vectorul */
for (int i = 0; i < dimensiuneVector; i++)
{
int numarCurent = vectorNumere[i];
/* dacă numărul curent e impar și divizibil cu 3 */
if (numarCurent % 2 != 0 && numarCurent % 3 == 0)
{
/* îl adăugăm la sumă */
sumaNumere += numarCurent;
}
}
/* când am terminat de parcurs vectorul, returnăm suma */
return sumaNumere;
}
int aflaNumarulMaxim(int vectorNumere[], int dimensiuneVector)
{
/* la fel, parcurgem vectorul, dacă numărul curent e mai mare decât maximul curent îl actualizăm, la final returnăm numărul maxim*/
int numarulMaxim = INT_MIN;
for (int i = 0; i < dimensiuneVector; i++)
{
int numarCurent = vectorNumere[i];
if (numarCurent > numarulMaxim)
{
numarulMaxim = numarCurent;
}
}
return numarulMaxim;
}