Телефонный справочник: Вывести на экран людей, которые имеют одинаковый адрес - C (СИ)
Формулировка задачи:
Решение задачи: «Телефонный справочник: Вывести на экран людей, которые имеют одинаковый адрес»
#include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #define n 4 struct NOTEBOOK{ char name[40]; char phone[20]; char address[40]; }; int main(){ NOTEBOOK note[n]; int count = 0; bool sameExist = false; printf("Fill in the notebook\n"); for(int i = 0; i < n; i++){ printf("\nName: "); scanf("%s", ¬e[i].name); printf("Phone: "); scanf("%s", ¬e[i].phone); printf("Address: "); scanf("%s", ¬e[i].address); } system("CLS"); printf("Your notebook:\n"); for(int i = 0; i < n; i++) printf("Name: %s Phone: %s Address: %s\n", note[i].name, note[i].phone, note[i].address); printf("\nEqual Address:\n"); for(int i = 0; i < n-1; i++){ for(int j = i+1; j < n; j++){ if(!strcmp(note[i].address, note[j].address)){ if(!sameExist) sameExist = true; count++; printf("Name: %s Address: %s\n AND \nName: %s Address: %s\n\n", note[i].name, note[i].address, note[j].name, note[j].address); } } } if(!sameExist) printf("Equal addresses not exist!\n"); else printf("Amount of Equal addresses: %d", count); getch(); return 0; }
Объяснение кода листинга программы
В этом коде объявлена структура данных NOTEBOOK, которая содержит поля name, phone и address.
В функции main создается массив note[n] типа NOTEBOOK, где n равно 4.
Затем пользователю предлагается заполнить этот массив данными. Для этого используется цикл for, который выполняется n раз. Внутри цикла пользователю предлагается ввести данные для каждого поля структуры NOTEBOOK с помощью функции scanf.
После заполнения массива, система очищается с помощью функции system(CLS
), и все данные из массива выводятся на экран с помощью цикла for и функции printf.
Далее следует поиск адресов, которые повторяются в массиве. Для этого используется два вложенных цикла for. Внутренний цикл проверяет каждый элемент массива на равенство с текущим адресом. Если равенство обнаружено, то переменной sameExist присваивается значение true, счетчик count увеличивается на единицу, и на экран выводятся имена и адреса людей, у которых совпадают адреса.
Если в массиве не найдено ни одного повторяющегося адреса, то переменной sameExist присваивается значение false, и на экран выводится сообщение Equal addresses not exist!
. В противном случае выводится сообщение Amount of Equal addresses: count
, где count - это количество людей с одинаковыми адресами.
В конце функции main вызывается функция getch(), которая ожидает нажатия клавиши, и функция main возвращает 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д