Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- //Подключаем библиотеки.
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<locale.h>
- #include"employee.h" //Подключаем файл.
- //Прототипы функций.
- int vvod(struct employee set[], int *n); //Функция ввода.Указатель на n ставиться потому что переменную n мы инициализируем в самой фук-ции.
- void vivod(struct employee set[], int n); //Функция вывода.
- void poisk(struct employee set[], int n); //Функция поиска.
- int main(void)
- {
- int n = 0; //Объявляем переменные.
- struct employee set[19]; //
- system("chcp 1251");
- setlocale(LC_ALL, "rus"); //Подключаем русскую раскладку.
- n = vvod(set, &n);
- poisk(set, n);
- vivod(set, n);
- }
- int vvod(struct employee set[], int *n){
- //Инициализируем переменные.
- int i = 0;
- printf("Введите число сотрудников:\n"); //Вводим число сотрудников.
- scanf_s("%d", n);
- //Проверяем правильность ввода.
- while (0 >= *n)
- {
- printf("Внимание! Число сотрудников строго больше 0.\n");
- printf("Введите число сотрудников:\n");
- scanf_s("%d", n);
- }
- for (i = 0; i < *n; i++){
- printf("-------------------------------------------------\n");
- printf("Сотрудник %d\n", i + 1); //Прибавляем 1, так как нумерация начинаеся с 0.
- printf("Фамилия Имя Отчество: \n");
- getchar(); //Так как перед этим мы считывали численную переменную n.
- gets(set[i].FIO.surname);
- gets(set[i].FIO.fname);
- gets(set[i].FIO.middlename);
- printf("(Внимание! При отсутсвии номера квартиры ввести 0.)\n");
- printf("Улица, № дома, № квартиры: \n");
- gets(set[i].adress.street);
- scanf("%d", &set[i].adress.house);
- scanf("%d", &set[i].adress.kv);
- printf("Год рождения: \n");
- scanf("%d", &set[i].years);
- }
- return *n; //Возвращаем кол-во сотрудников.
- }
- void vivod(struct employee set[], int n){
- //Инициализируем переменные.
- int i = 0;
- for (i = 0; i < n; i++){
- printf("-------------------------------------------------\n");
- printf("Сотрудник %d\n", i + 1); //Прибавляем 1, так как нумерация начинаеся с 0.
- printf("%s %s %s\n", set[i].FIO.surname, set[i].FIO.fname, set[i].FIO.middlename);
- printf("%s %d %d\n", set[i].adress.street, set[i].adress.house, set[i].adress.kv);
- printf("%d\n", set[i].years);
- }
- }
- void poisk(struct employee set[], int n){
- int i = 0;
- int nomer = 0;
- int vzr = 0;
- printf("Введите номер дома:\n"); //Вводим номер дома.
- scanf_s("%d", nomer);
- /*//Проверяем правильность ввода.
- while (0 >= nomer)
- {
- printf("Внимание! Номер дома строго больше 0.\n");
- printf("Введите номер дома:\n");
- scanf("%d", nomer);
- }
- /*
- //Принимаем возраст первого встретившегося сотрудника за минимальный.
- for (i = 0; i < n; i++){
- if (set[i].adress.house == nomer){
- vzr = set[i].years;
- break;
- }
- }
- //Проверяем проживают ли сотрудники в этом доме.
- if (vzr == -1){
- printf("Внимание! В этом доме нет сотрудников.\n");
- }
- else{
- //Сравниваем возраст первого встретившегося сотрудника с возрастом всех сотрудников, проживающих в этом доме.
- for (i = 0; i < n; i++){
- if ((set[i].adress.house == nomer) && (set[i].years > vzr)){
- vzr = set[i].years;
- }
- }
- //Выводим сотрудников.
- for (i = 0; i < n; i++){
- if ((set[i].adress.house == nomer) && (set[i].years == vzr)){
- printf("-------------------------------------------------\n");
- printf("Сотрудник %d\n", i + 1); //Прибавляем 1, так как нумерация начинаеся с 0.
- printf("%s %s %s\n", set[i].FIO.surname, set[i].FIO.fname, set[i].FIO.middlename);
- printf("%s %d %d\n", set[i].adress.street, set[i].adress.house, set[i].adress.kv);
- printf("%d\n", set[i].years);
- }
- }
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement