#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <windows.h>


double calcola_affinita(char nome1[], char nome2[]) {
    int somma_ascii = 0;
    int min_ascii;
    int random_value;


    for (int i = 0; nome1[i] != '\0' && nome2[i] != '\0'; i++) {
        somma_ascii += (int)nome1[i] + (int)nome2[i];
    }

    min_ascii = (int)nome1[0] < (int)nome2[0] ? (int)nome1[0] : (int)nome2[0];
    for (int i = 1; nome1[i] != '\0' && nome2[i] != '\0'; i++) {
        if ((int)nome1[i] < min_ascii)
            min_ascii = (int)nome1[i];
        if ((int)nome2[i] < min_ascii)
            min_ascii = (int)nome2[i];
    }

    srand(time(NULL));
    random_value = rand() % (min_ascii + 1);

    double affinita = (double)(somma_ascii - random_value) / (255 * strlen(nome1) + 255 * strlen(nome2) - random_value) * 10;

    return affinita;
}

int main() {
	SetConsoleTitle("Calcolo affinita' di coppia by Vichi Manuel");
    char nome1[100];
    char nome2[100];

    printf("Inserisci il primo nome: ");
    scanf("%s", nome1);
    printf("Inserisci il secondo nome: ");
    scanf("%s", nome2);

    double affinita = calcola_affinita(nome1, nome2);

    printf("L'affinita' di coppia tra %s e %s e'': %.2f/10\n", nome1, nome2, affinita);

    return 0;
}
