scusa per il disturbo ma il programma lo stesso stampa tutte le portate senza distinzione.. Potresti ricontrollare la codifica gentilmente?
codice:#include<iostream> # include<cmath> using namespace std; int n,k,i; int portate[5]; int binario[5]= {0, 0, 0, 0, 0}; int binario_migliore[5]; void carica () { for (i=0;i<n;i++) { cout<<"Inserire elemento vettore reale "<<i+1<<endl; cin>>portate[i]; } } void prossima_combinazione () { int pos = - 1; while(pos >= 0 && portate[pos] == 1) { portate[pos] = 0; pos--; } if(pos >= 0) portate[pos] = 1; } void somma() { int somma = 0; int min; for(int i=0; i<n; ++i) { if(binario[i] == 1){ somma += portate[i]; if (somma>=k) { min=somma; if(somma<min) somma=min; binario[i]=binario_migliore[i]; } } } } stampa_finale() { std::cout << "Portate da mangiare: " << std::endl; for(int i=0; i<n; ++i) { std::cout << portate[i]; if(binario_migliore[i] == 1) { std::cout << " *"; } std::cout << std::endl; } } int main() { cout<<"Inserire numero di portate P"<<endl; cin>>n; cout<<"Inserire K minimo"<<endl; cin>>k; carica(); prossima_combinazione(); somma(); stampa_finale(); system("pause"); return (0); }

Rispondi quotando