School-Coding-Cpp/sfusi/t.c

50 lines
1.3 KiB
C

#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;
}