Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
vadim222
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 24
1

Структура "Завод", посчитать количество слесарей и токарей

13.06.2016, 08:23. Просмотров 1085. Ответов 2
Метки нет (Все метки)

(Структура)Информация по N заводах города задается строкой следующего вида: фамилия , средний возраст , специальность, средний оклад. Ввести информацию по заводам , посчитать количество слесарей и токарей . Напечатать значения и номера заводов , где средний возраст выше 35 лет.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2016, 08:23
Ответы с готовыми решениями:

Структура "Хоккеист" и файлы с двумя командами: "Динамо" и "Спартак"
Создать 2 файла, содержащего сведения об игроках хоккейных команд "Динамо" и...

Подсчитать общее количество вхождений в строку символов "А", "a", "B" и "b"
#include <stdio.h> #include <string.h> #include <conio.h> main() { ...

Посчитать в тексте количество букв "u"
Задать символьная строка "qwertyuikjhgfdsaqwerty" с помощью операторов...

Подсчитать количество сдвоенных символов "сс", "нн", "лл" в тексте, расположенном в текстовом файле
Пожалуйста) Подсчитать количество сдвоенных символов сс, нн, лл в тексте,...

Структура "двоичное дерево", ошибка "неполный тип"
Вот структура узла: typedef struct node { char* info; ...

2
Kotik_leapold
104 / 93 / 83
Регистрация: 18.12.2015
Сообщений: 567
13.06.2016, 10:26 2
Привет, предлагаю вам реализацию:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
struct worker {
    int id_factory;
    char* name;
    int age;
    char* specility;
    int salary;
};
 
void print_worker(struct worker worker) {
    printf("Id factory %d\n", worker.id_factory);
    printf("Name %s\n", worker.name);
    printf("Age %d\n", worker.age);
    printf("Specility %s\n", worker.specility);
    printf("Salary %d\n", worker.salary);
    printf("\n");
}
 
int main(void) {
    int count_locksmiths = 0;
    int count_turners = 0;
    int i = 0;
 
    struct worker first_worker,
                  second_worker,
                  third_worker,
                  forth_worker;
 
 
    first_worker.id_factory = 1;
    first_worker.name = "Петрович";
    first_worker.age = 36;
    first_worker.specility = "слюсарь";
    first_worker.salary = 3000;
 
    second_worker.id_factory = 1;
    second_worker.name = "Егоров";
    second_worker.age = 32;
    second_worker.specility = "токарь";
    second_worker.salary = 2500;
 
    third_worker.id_factory = 2;
    third_worker.name = "Семечкин";
    third_worker.age = 40;
    third_worker.specility = "слесарь";
    third_worker.salary = 3000;
 
    forth_worker.id_factory = 1;
    forth_worker.name = "Кирилов";
    forth_worker.age = 30;
    forth_worker.specility = "начальник";
    forth_worker.salary = 5000;
 
    struct worker workers[4] = {first_worker,
                                second_worker,
                                third_worker,
                                forth_worker
    };
 
    for (i = 0; i < 4; i++) {
        if (strcmp(workers[i].specility, "токарь") == 0) {
            count_turners++;
        }
 
        if (strcmp(workers[i].specility, "слесарь") == 0) {
            count_locksmiths++;
        }
 
        if (workers[i].age > 35) {
            printf("Factory: %d\n", workers[i].id_factory);
 
            print_worker(workers[i]);
        }
    }
 
    printf("Count turners: %d\n", count_turners);
    printf("Count locksmiths: %d\n", count_locksmiths);
 
    return EXIT_SUCCESS;
}
0
LFC
730 / 535 / 416
Регистрация: 17.09.2015
Сообщений: 1,598
28.06.2016, 06:08 3
Лучший ответ Сообщение было отмечено vadim222 как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
//Информация по N заводам города задается строкой следующего вида:
//фамилия , возраст , специальность, оклад. Ввести информацию
//по заводам , посчитать количество слесарей и токарей . Напечатать значения
//и номера заводов , где средний возраст выше 35 лет.
#define N 15
#define M 12
void FirstSecondName(char C[])//функция генерирует случайные первые и вторые имена
{
    char B[] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T',
            'V','W','Z',};
    C[0] = ' ';
    C[1] = B[rand() % 23];
    C[2] = '.';
    C[3] = B[rand() % 23];
    C[4] = '.';
    C[5] = '\0';
}
int main()
{
    char str[N][15] = {"Johnson","Murphy","Simpson","Jackson","Pitt",
                      "O'Neal","Clooney", "Gerard", "Lee", "Cole", "Peterson",
                      "McGregor", "O'Brian", "Anderson", "Kidman"};
    char A[6][10] = {"locksmith", "mason", "turner", "carpenter", "docker", "driver"};
    char B[6];
    int t = 0, d = 0, old, k = 0, x;
    double y;
 
    struct All_Factorys//количество заводов
    {
        struct Factory//структура Ф.И.О.,возраст,специальность,зарплата
        {
            char last_name[20];
            int old;
            char speciality[20];
            int zp;
        }worker_num[30];
    }fact_num[M];
    struct MidOld//содержит номера заводов где средний возраст рабочих выше 35 лет и конкретное
    {            //значение среднего возраста
        int number_factory;
        double middle_old;
    } age[M];
    srand(time(0));
    //заполняем структуру All_Factorys(т.е. рабочим присваиваем ФИО,возраст,специальность и зарплату)
    for(int j = 0;j < M; ++j){//цикл по количеству заводов
        printf("\nFactory # %d\n\n", j + 1);
        old = 0;
        x = rand() % (30 - 15) + 15;
        for(int i = 1; i <= x; ++i){//цикл внутри завода,по количеству рабочих
            strcpy(fact_num[j].worker_num[i].last_name, str[rand() % N]);//рандомно выбираем фамилию
            FirstSecondName(B);//генерируем "имя-отчество"
            strcat(fact_num[j].worker_num[i].last_name, B);//объединяем фамилию и "имя-отчество"
            fact_num[j].worker_num[i].old = rand() % (60 - 19) + 15;//генерируем возраст от 18 до 55
            strcpy(fact_num[j].worker_num[i].speciality, A[rand() % 6]);//рандомно присваиваем специальность
            fact_num[j].worker_num[i].zp = rand() % (1000 - 700) + 700;//рандомно назначаем зарплату
            //выводим на экран полученные данные и определяем средний возраст рабочих на каждом заводе
            printf("%2d %-20s %4d  %-10s%6d\n", i, fact_num[j].worker_num[i].last_name,
                fact_num[j].worker_num[i].old,
                fact_num[j].worker_num[i].speciality, fact_num[j].worker_num[i].zp);
            if(0 == strcmp(fact_num[j].worker_num[i].speciality, A[2])){
                ++t;//подсчитываем количество токарей
            }
            if(0 == strcmp(fact_num[j].worker_num[i].speciality, A[0]))
                ++d;//подсчитываем количество слесарей
            old += fact_num[j].worker_num[i].old;//подсчитываем общий возраст
        }
        y = (double)old / x;
        if(y > 35){//если средний возраст более 35
            age[k].number_factory = j;//запоминаем номер завода в структуру MidOld
            age[k].middle_old = y;//запоминаем средний возраст на этом заводе
            ++k;
        }
    }
    printf("\nTurners%d\nLocksmithes %d\n\n", t, d);
    for(int i = 0; i < k; ++i)
        printf("On the factory %2d average age is %g\n", age[i].number_factory + 1, age[i].middle_old);
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2016, 06:08

Посчитать в многострочном тексте количество букв "А" в предложении и общее количество букв
Люди подскажите не могу разобраться с задачкой : на языке Си Нужно Посчитать...

Создать запись "Двигатель", которая содержит элементы "Название", "Мощность", "Скорость", "Цена"
Создать запись &quot;Двигатель&quot;, которая содержит элементы &quot;Название&quot;, &quot;Мощность&quot;,...

Написать программу которая подсчитывает количество слов, начинающихся с буквы "к" или "К", в тексте
помогите, пожалуйста написать программу которая подсчитывает количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru