Вы неправильно проверяете строку pays
:
if(strcmp(ville[i].pays, nom))
Функция strcmp
возвращает 0, если две строки совпадают, и ненулевое, если они не совпадают.Поскольку условие считается истинным, если оно оценивается как ненулевое, часть if
вводится только тогда, когда pays
соответствует , а не соответствует каждому ville[i].pays
.И поскольку вы ввели одинаковую строку pays
для каждой деревни, а также отдельную строку pays
, все они совпадают, поэтому условие if
никогда не вводится.
Если вы ввели другой pays
для одной деревни, тогда для нее будет введен if
, и вы получите ненулевое возвращаемое значение из функции.
Вам нужносравнить результат strcmp
с 0, чтобы увидеть, совпадают ли строки.
if(strcmp(ville[i].pays, nom) == 0)
Кроме того, никогда не использует gets
, а вместо этого использует fgets
.