22/05/08 21:09
buzzicotta
#include <iostream.h> #include <stdlib.h> #include <string.h> #include <math.h> class quadrato { private: int lato; public: quadrato(); void leggi_lato(); int perimetro(); int area(); int calcola_max(); }; quadrato::quadrato() { int lato; lato=0; } void quadrato::leggi_lato() { cin>>lato; } int quadrato::perimetro() { return lato*4; } int quadrato::area() { return lato*lato; } int calcola_max(int vet[]) { int max=0; for(int i=1;i<4;i++) { if(vet[max]<vet[i]) { max=i; } } return max; } int main() { quadrato q[4]; int perimetri[4]; int aree[4]; int max_p; int max_a; for(int i=0;i<4;i++) { cout<<"lato del quadrato numero "<<i+1<<" e': "; q[i].leggi_lato(); cout<<"\n perimetro:"<<q[i].perimetro(); cout<<"\n area:"<<q[i].area(); cout<<"\n\n"; perimetri[i]=q[i].perimetro(); aree[i]=q[i].area(); } max_p=calcola_max(perimetri); max_a=calcola_max(aree); if(max_p==max_a) { cout<<"Il quadrato numero "<<max_p+1<<" ha il perimetro ("<<perimetri[max_p]<<") piu' grande.\n\n"; cout<<"Il quadrato numero "<<max_p+1<<" ha l'area ("<<aree[max_a]<<") piu' grande\n\n"; }else { cout<<"Il perimetro piu' grande ("<<perimetri[max_p]<<") è del quadrato numero "<<max_p+1<<" \n mentre l'area maggiore ("<<aree[max_a]<<") e' del quadrato numero "<<max_a<<"\n\n"; } system("PAUSE"); }
sono venuta a capo di questo enigma ma accetto volentieri consigli per un'implementazione più efficiente..grazie 1000 di tt
aaa