Salve a tutti, avrei urgentemente bisogno di una mano per risolvere questo esercizio che mi sono inventato
Ho un array di N elementi reali, devo stampare tutti i possibili sottoarray,tale che la somma degli elementi di questi sia minore della media tra l'elemento massimo e l'elemento minimo.
Io riesco a stamparmi solo il primo,gli altri non ci riesco
ecco qui il mio codice dove l'ultimo while più esterno l'avevo messo per stamparmi tutti i sottoarray che verificano la condizione ma come immaginavo è un ciclo infinito
#include<iostream>
using namespace std;
const int N=10;
int main()
{
double a[N]={4,4.5,4.8,36,7,8,9,11,5,6.1};
int i,j;
double min,max;
min=max=a[0];
i=0;
while(i<N)
{
if(a[i]<min)min=a[i];
i++;
}
j=0;
while(j<N)
{
if(a[j]>max)max=a[j];
j++;
}
cout<<"Gli elementi dell'array sono: "<<endl;
for(int k=0;k<N;k++)
cout<<a[k]<<" ";
cout<<endl<<endl;
cout<<"Gli elementi minimo e massimo dell'array sono rispettivamente"<<endl<<min<<" e "<<max<<endl<<endl;
double media=(min+max)/2;
cout<<endl<<"La media dei due numeri minimo e massimo è: "<<media<<endl<<endl;
bool c[N];
for(int d=0;d<N;d++)
c[d]=false;
int p=0,q=0;
double temp=media;
bool verifica=true;
while(verifica)
{
double somma=0;
while(p<N)
{
if(somma+a[p]<=media && a[p]!=min && a[p]!=max){
if(c[p]==false){
somma+=a[p];
c[p]=false;
cout<<a[p]<<" - ";
}
}
verifica=true;
p++;
}
cout<<endl;
}
return 0;
}