50 lines
1.3 KiB
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;
|
|
}
|