Salve ,
l'esercizio richiedeva :
• Scrivere un programma C++ che legga da tastiera una sequenza di 50 interi
• Il programma dovrà stampare a video la sequenza, calcolare e stampare a
video il massimo, il minimo, e la media della sequenza
• Verificare se la somma degli elementi in posizione pari è uguale alla somma
degli elementi in posizione dispari.
• In caso affermativo il programma deve stampare il messaggio “condizione
soddisfatta”; in caso negativo, il messaggio “condizione non soddisfatta
ho trovato dei problemi al terzo punto : il programma funziona ma non so se quella sia la soluzione migliore , cioè sono sicuro che esistono modi più semplici ed intelligenti per alternare la somma tra dispari e pari. Qualche consiglio su come modificare quella parte in modo tale da renderla più semplice ?
#include <iostream>
using namespace std;
const int K = 6;
void leggArr (float arr[K]); // legge l'array
void maxMinLett (float arr[K]); // mi calcola il minimo e il massimo e li stampa
bool verSom ( float arr[K]); // mi verifica se la somma dei dispari e dei pari coincide
float media ( float arr[K]); // mi calcola la maedia
int main()
{
float arr1[K];
float valore ;
leggArr (arr1);
maxMinLett(arr1);
verSom(arr1);
valore = media(arr1);
cout << " Il valore medio è = " << (valore)/K << endl;
if (verSom(arr1) == true)
{
cout << " Verificato";
}
else
{
cout << " Non verificato";
}
return 0;
}
void leggArr (float arr[K])
{
for(int i = 0; i < K; i++ )
{
cin >> arr[i];
}
}
void maxMinLett (float arr[K])
{
float minC, maxC;
minC = arr[0] ;
maxC = arr[0] ;
for(int i = 0; i < K; i++ )
{
if ( arr[i] < minC)
{
minC = arr[i];
}
else
{
if ( arr[i] > maxC)
{
maxC = arr[i];
}
}
}
cout << " Max = " << maxC << endl;
cout << " Min = " << minC << endl;
}
bool verSom (float arr[K]) // da correggere
{
float somD = 0, somP = 0;
int c = 1, z = 2;
for(int i = -1; i + c < K ; i++ )
{
somD = somD + arr[i+c];
c++;
somP = somP + arr[i+z];
z++;
}
cout << " sommaD = " << somD << endl;
cout << " sommaP = " << somP << endl;
if (somD == somP)
{
return true;
}
else
{
return false;
}
}
float media ( float arr[K])
{
float somMedia = 0 ;
for(int i = 0; i < K ; i++ )
{
somMedia = somMedia + arr[i];
}
return somMedia;
}