Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
EnotAnn
0 / 0 / 2
Регистрация: 22.11.2017
Сообщений: 13
1

Структуры: определить число спортсменов с заданным результатом по заданному виду спорта

05.12.2017, 23:42. Просмотров 183. Ответов 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
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
struct athlete {
    char fam[20]; //фамилия
    char country[20]; //страна
    char sport[20]; //вид спорта
    int result;//лучший результат
};
 
int main() {
    setlocale(LC_ALL,("Rus"));
    //struct athlete a;
    int i;
    int n=5;
    struct athlete info[5];
    puts("+++++++++ 1 задание ++++++++++++++");
    for(i=0;i<n;i++){
        printf("\nВведите Фамилию: ");
        scanf("\n %s",info[i].fam);
        printf("\nВведите страну спортсмена: ");
        scanf("\n %s",info[i].country);
        printf("\nВведите вид спорта: ");
        scanf("\n %s",info[i].sport);
        printf("\nВведите лучший результат спортсмена: ");
        scanf("\n %d",&info[i].result);
    }
    puts("Полный список спортсменов: \n");
    for(i=0; i<n;i++)
        printf("\n %20s %20s %20s %5d\n",info[i].fam,info[i].country,info[i].sport,info[i].result);
        puts("+++++++++ 2 задание ++++++++++++++");
int min=info[0].result;
        for(i=0;i<n;i++){
        if(info[i].result<min)
            min=info[i].result;}
            printf("Лучший результат %d",min);
 
            puts("+++++++++ 3 задание ++++++++++++++");
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2017, 23:42
Ответы с готовыми решениями:

Заданы цифры - расставить знаки сложения и вычитания так, чтобы получилось выражение с заданным результатом
Здравствуйте, задали домашнее задание. Имеются цифры 1, 2, 3, 4, 5, 6, 7, 8, 9....

Получить список девушек заданного возраста по заданному виду спорта
Решить задачу по обработке файлов данных с использованием динамической памяти...

Узнать ФИО спортсменов, занимающихся более 5 видами спорта
Есть табличка с полями: id, название соревнования, ФИО спортсмена, вид спорта....

В первой группе спортсменов 7 мастеров спорта и 8 кандидатов в мастера
В первой группе спортсменов 7 мастеров спорта и 8 кандидатов в мастера, во...

Получить список спортсменов, которые занимаются несколькими видами спорта
Здравствуйте, извините за такое простое задание но я завис. У меня есть...

2
stake-k26
371 / 311 / 259
Регистрация: 25.04.2016
Сообщений: 920
06.12.2017, 03:17 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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <stdio.h>
#include <string.h>
//#include <stdlib.h>
#include <locale.h>
/* Определить лучшего спортсмена в заданном виде спорта (минимальный
 * результат).
 *
 * Определить количество всех спортсменов с заданным результатом по заданному
 * виду спорта.
 */
 
struct athlete
{
    char fam[20]; //фамилия
    char country[20]; //страна
    char sport[20]; //вид спорта
    int result;//лучший результат
};
 
int main (void)
{
    setlocale(LC_ALL,("Rus"));
    int i;
    const int n = 5;
    struct athlete info[n];
 
    puts("+++++++++ 1 задание ++++++++++++++\n");
    // заносим данные в структуру
    for(i=0; i<n; i++)
    {
        printf("Введите Фамилию: ");
        scanf("%s", info[i].fam);
        printf("Введите страну спортсмена: ");
        scanf("%s", info[i].country);
        printf("Введите вид спорта: ");
        scanf("%s", info[i].sport);
        printf("Введите результат спортсмена: ");
        scanf("%d", &info[i].result);
        printf("\n");
    }
 
    // список спортсменов на экран:
    puts("Полный список спортсменов: \n");
    for(i=0; i<n; i++)
    {
        printf("\t%s:\n", info[i].fam);
        printf("\tСтрана: %s\n", info[i].country);
        printf("\tВид сопрта: %s\n", info[i].sport);
        printf("\tС результатом: %d\n\n", info[i].result);
    }
 
    // находим лучшего спортсмена по заданному виду спорта:
    puts("+++++++++ 2 задание ++++++++++++++\n");
    char * sport1;      // вид спорта
    int cnt = 0;        // сколько спортсменoв нашли
    int min;            // лучший результат
 
    printf("Укажите вид спорта: ");
    scanf("%s", sport1);
 
    // ищем запись по виду спорта с лучим результатом:
    for (i=0; i<n; i++)
    {
        if (!strcmp(info[i].sport, sport1)) //если info[i].sport == sport
        {
            if (cnt == 0) { min = i; cnt = cnt+1; }    // первого встречного запоминаем как минимум
            else
                if (info[i].result < info[min].result)
                    min = i;
        }
    }
    // результат на экран:
    if (cnt == 0) printf("По вашему запросу ничего не найдено.\n");
    else
    {
        printf("Лучшее время: %d у спортсмена %s из %s\n",
                            info[min].result,
                            info[min].fam,
                            info[min].country);
    }
 
    // третье задание выполняется аналогично, только при нахождении совпадения
    // по sport, мы проверяем еще и совпадение по result:
    puts("+++++++++ 3 задание ++++++++++++++\n");
    int res;    // результат, который ищем
    char * sport2;    // вид спорта
 
    printf("Укажите вид спорта: ");
    scanf("%s", sport2);
    printf("Укажите время: ");
    scanf("%d", &res);
 
    // ищем, если нашли, результат на экран:
    for (i=0; i<n; i++)
    {
        if (!strcmp(info[i].sport, sport2) && info[i].result == res)
                printf("Спортсмен %s из %s\n", info[i].fam, info[i].country);
    }
    return 0;
}
0
EnotAnn
0 / 0 / 2
Регистрация: 22.11.2017
Сообщений: 13
06.12.2017, 20:34  [ТС] 3
Спасибо :3 <3
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2017, 20:34

Структура Sportsman, поиск лучших спортсменов в каждом виде спорта
Структура: SPORTSMAN, поля: фамилия и инициалы, время на 100 м, время на 800 м,...

Структуры: ввести спортсменов, результаты и определить занятые ими места
Определить тип данных запись, имеющий поля фамилия, страна и результаты 6...

Найти вероятность того что из 2 случайным образом отобранных спортсменов - хотя бы 1 - мастер спорта
Правильно ли решено? В группе из 8 спортсменов 6 мастеров спорта. Найти...


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

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

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