Salve mi sn appena iscritto. Vorrei subito sfoderare un programmino che mi è stato richiesto dal mio prof di creare. secondo voi può avere un senso? altrimenti che mi consigliate?

codice:
#include <cstdlib>
#include <iostream>

using namespace std;

// header funzione

float Controlla (double a, double b);

int main(void)
{
    // dichiarazione ed inizializzazione precauzionale dei "personaggi"
    
    double n1=0,n2=0;
    float perc=0.0;
    char answ='n';
    
    // presentazione del programma all'utente
    
    cout << "+------------------------------------------------------------+" << endl << endl;
    cout << "  Questo programma si propone di calcolare la percentuale di"<< endl;
    cout << "''somiglianza'' tra due numeri interi arbitrari. QWERTY group"<< endl << endl;
    cout << "+------------------------------------------------------------+"<< endl << endl;
    
    cout << "ATTENZIONE:      puoi scrivere qualsiasi numero intero e/o decimale" << endl;
    cout << "\t\t ma per i decimali devi usare il punto e non la virgola!" << endl << endl << endl;
    
    do{
    // programma
    
    cout << "Inserisci il primo numero: ";
    cin >> n1;
    cout << endl;
    cout << "Inserisci il secondo numero: ";
    cin >> n2;
    cout << endl;
    
    // analisi
    
    perc = Controlla(n1,n2);
    
    // controllo dell'ordine di grandezza + stampa
    
    if(perc < 0.0001){cout << "La percentuale e' troppo piccola" << endl << endl;}
    else{cout << "I due numeri sono simili allo/al: " << perc << "%\n\n";}
    
    // implementazione per + sessioni di gioco
    
    do{
    cout << "Vuoi giocare di nuovo? [y/n]:  ";
    cin >> answ; cout << endl;
      }while(answ != 'y' && answ != 'n' && answ != 'Y' && answ != 'N');
              
     }while(answ == 'y' || answ == 'Y');    
    
    cout << "Bye Bye! =]" << endl << endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

float Controlla (double a, double b)
{
     double min=0,max=0;
     float perc=0.0,diff=0.0;
     
     // analisi del caso di 2 numeri uguali
     
     if(a==b){perc=100.0;return perc;}
     
     // analisi del caso con lo 0
     
     if((a==0)||(b==0)){
                        a=a+1;
                        b=b+1;}
     
     // analisi dei casi negativi
     
     if((a<0) && (b>0)){
                         a = a*(-1);
                         if(a<b){max = b;}
                         else{max = a;}
                         diff = (float)b + (float)a;
                         perc = 100.0 - ((diff * 100.0)/(float)max);
                         if(perc < 0.0){perc = perc*(-1);}
                         return perc;}
                         
     if((b<0) && (a>0)){
                         b = b*(-1);
                         if(b<a){max = a;}
                         else{max = b;}
                         diff = (float)b + (float)a;
                         perc = 100.0 - ((diff * 100.0)/(float)max);
                         if(perc < 0.0){perc = perc*(-1);}
                         return perc;}
     
     // analisi dei casi standard positivi
     
     if(a<b){min = a;
             max = b;
             diff = (float)b - (float)a;
             perc = 100.0 - ((diff * 100.0)/(float)max);
             return perc;}
             
     if(a>b){min = b;
             max = a;
             diff = (float)a - (float)b;
             perc = 100.0 - ((diff * 100.0)/(float)max);
             return perc;}  
     
}