С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 04.01.2021
Сообщений: 9

Использование ссылок при работе со структурами

04.01.2021, 15:59. Показов 1398. Ответов 13
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, помогите пожалуйста, никак не получается решить данное задание:
Имеется код:
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
#include <iostream>
 
struct free_throws  
{
    char name[30];
    int made;           
    int attempts;           
    float percent;          
};
 
void display(const free_throws & ft); 
void set_pc(free_throws & ft);
free_throws & accumulate(free_throws &target, const free_throws &source);
 
int main()
{
    free_throws one = {"Petrov", 13, 14};
    free_throws two = {"Ivanov", 10, 16};
    free_throws team = {"All", 0, 0};
 
    set_pc(one);
    display(one);
    accumulate(accumulate(team, one), two);
    display(team);
 
    std::cin.get();
    return 0;
}
 
void display(const free_throws & ft)
{
    using std::cout;
    cout << "Name: " << ft.name << '\n';
    cout << "  Made: " << ft.made << '\t';
    cout << "Attempts: " << ft.attempts << '\t';
    cout << "Percent: " << ft.percent << '\n';
}
 
void set_pc(free_throws & ft)
{
    if (ft.attempts != 0)
        ft.percent = 100.0f *float(ft.made)/float(ft.attempts);
    else
        ft.percent = 0;
}
 
free_throws & accumulate(free_throws & target, const free_throws & source)
{
    target.attempts += source.attempts;
    target.made += source.made;
    set_pc(target);
    return target;
}
Надо:
- Увеличить количество человек до 3.
- Описать функцию для изменения количества общих попыток. Аргументы передавать по ссылке. Изменить количество общих попыток одного из спортсменов, используя объявленную функцию.
- На экран выводить результаты (количество удачных попыток, общее количество попыток, процент удачных попыток) по каждому спортсмену команды и общекомандный результат.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.01.2021, 15:59
Ответы с готовыми решениями:

Ошибка при работе со структурами
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; typedef struct slist_ { long val; struct slist_ *next; ...

Ошибка при работе со структурами
#include &lt;stdio.h&gt; #include &lt;windows.h&gt; char name1; int age1; char nickname1; char country1; char from_is1; struct...

Ошибка при работе со структурами
Вот код. Выдает вот такую вот ошибку &quot;Необработанное исключение по адресу 0x012A58A1 в ConsoleApplication1.exe: 0xC0000005: нарушение...

13
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.01.2021, 17:10
Цитата Сообщение от VnukBilla Посмотреть сообщение
Надо:
- Увеличить количество человек до 3.
C++
1
2
3
4
5
6
free_throws arr[3] = 
{
    {"Petrov", 13, 14},
    {"Ivanov", 10, 16},
    {"Sidorov", 22, 33},
};
0
1 / 1 / 0
Регистрация: 04.01.2021
Сообщений: 9
04.01.2021, 17:40  [ТС]
было бы отлично, если бы весь код, просто понимать куда его вставлять чтобы это работало=) спасибо
0
1 / 1 / 0
Регистрация: 04.01.2021
Сообщений: 9
04.01.2021, 18:13  [ТС]
я его вставил как-то так:
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
#include <iostream>
 
struct free_throws
{
    char name[30];
    int made;
    int attempts;
    float percent;
};
 
void display(const free_throws& ft);
void set_pc(free_throws& ft);
free_throws& accumulate(free_throws& target, const free_throws& source);
free_throws arr[3] =
{
    {"Petrov", 13, 14},
    {"Ivanov", 10, 16},
    {"Sidorov", 22, 33},
};
 
 
int main()
{
    free_throws one = { "Petrov", 13, 14 };
    free_throws two = { "Ivanov", 10, 16 };
   // free_throws three = { "Sidorov", 22, 33 };
    free_throws team = { "All", 0, 0 };
 
    set_pc(one);
    display(one);
    accumulate(accumulate(team, one), two);
    display(team);
 
  }
 
void display(const free_throws& ft)
{
    using std::cout;
    cout << "Name: " << ft.name << '\n';
    cout << "  Made: " << ft.made << '\t';
    cout << "Attempts: " << ft.attempts << '\t';
    cout << "Percent: " << ft.percent << '\n';
}
 
void set_pc(free_throws& ft)
{
    if (ft.attempts != 0)
        ft.percent = 100.0f * float(ft.made) / float(ft.attempts);
    else
        ft.percent = 0;
}
 
free_throws& accumulate(free_throws& target, const free_throws& source)
{
    target.attempts += source.attempts;
    target.made += source.made;
    set_pc(target);
    return target;
}
консоль: =(
0
1 / 1 / 0
Регистрация: 04.01.2021
Сообщений: 9
04.01.2021, 19:35  [ТС]
помогите пжлст
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.01.2021, 20:23
Цитата Сообщение от VnukBilla Посмотреть сообщение
я его вставил как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
    free_throws arr[3] =
    {
        {"Petrov", 13, 14},
        {"Ivanov", 10, 16},
        {"Sidorov", 22, 33},
    };
 
    free_throws team = {};
 
    for(suto &item: arr)
    {
        set_pc(item);
        display(item);
        accumulate(team, item);
    }
    display(team);
}
0
1 / 1 / 0
Регистрация: 04.01.2021
Сообщений: 9
04.01.2021, 20:34  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
я его вставил как-то так:
ругается ...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.01.2021, 20:35
Цитата Сообщение от VnukBilla Посмотреть сообщение
ругается ...
auto
0
1 / 1 / 0
Регистрация: 04.01.2021
Сообщений: 9
04.01.2021, 20:39  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
auto
...спасибо большое=)

Осталось побороть:

Описать функцию для изменения количества общих попыток. Аргументы передавать по ссылке. Изменить количество общих попыток одного из спортсменов, используя объявленную функцию.
- На экран выводить результаты (количество удачных попыток, общее количество попыток, процент удачных попыток) по каждому спортсмену команды и общекомандный результат.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.01.2021, 20:40
Цитата Сообщение от VnukBilla Посмотреть сообщение
- На экран выводить результаты (количество удачных попыток, общее количество попыток, процент удачных попыток) по каждому спортсмену команды и общекомандный результат.
Это вроде сделано
0
1 / 1 / 0
Регистрация: 04.01.2021
Сообщений: 9
04.01.2021, 20:43  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Это вроде сделано
точно, извиняюсь, не увидел, спасибо=)

тогда только это:
- Описать функцию для изменения количества общих попыток. Аргументы передавать по ссылке. Изменить количество общих попыток одного из спортсменов, используя объявленную функцию.
0
1 / 1 / 0
Регистрация: 04.01.2021
Сообщений: 9
05.01.2021, 10:33  [ТС]
Доброе утро, помогите пожалуйста, завершить задание, осталось только это:

Описать функцию для изменения количества общих попыток. Аргументы передавать по ссылке. Изменить количество общих попыток одного из спортсменов, используя объявленную функцию.
0
 Аватар для Nishen
1357 / 856 / 365
Регистрация: 26.02.2015
Сообщений: 3,813
05.01.2021, 12:02
Цитата Сообщение от VnukBilla Посмотреть сообщение
помогите пожалуйста
Помогают тем, кто сам что-то сделать пытается. Ты же проси "сделать за тебя". Нужно все называть своими именами.
Чем тебе помочь? В чём твой вопрос?
1
1 / 1 / 0
Регистрация: 04.01.2021
Сообщений: 9
05.01.2021, 15:48  [ТС]
Цитата Сообщение от Nishen Посмотреть сообщение
Помогают тем, кто сам что-то сделать пытается. Ты же проси "сделать за тебя". Нужно все называть своими именами.
Чем тебе помочь? В чём твой вопрос?
Я пытаюсь, что-то сделать, пытаюсь разобраться и я не вижу тут не чего криминального, попросить о помощи людей которые профессионально разбираются в программировании (для такого человека эти задачки решаются в два счета т.е. легко), была бы у меня возможность помочь, я бы помог не задумываясь.

А вопрос в том:
- как сделать так чтобы описать функцию для изменения количества общих попыток? Как сделать так чтобы передавать аргументы по ссылке. Как сделать так чтобы изменить количество общих попыток одного из спортсменов, используя объявленную функцию. В ниже изложенном коде:

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
#include <iostream>
 
struct free_throws
{
    char name[30];
    int made;
    int attempts;
    float percent;
};
 
void display(const free_throws& ft);
void set_pc(free_throws& ft);
free_throws& accumulate(free_throws& target, const free_throws& source);
 
 
 
int main()
{
    free_throws arr[3] =
    {
        {"Petrov", 13, 14},
        {"Ivanov", 10, 16},
        {"Sidorov", 22, 33},
    };
 
    free_throws team = {};
 
    for (auto& item : arr)
    {
        set_pc(item);
        display(item);
        accumulate(team, item);
    }
    display(team);
}
 
void display(const free_throws& ft)
{
    using std::cout;
    cout << "Name: " << ft.name << '\n';
    cout << "Made: " << ft.made << '\t';
    cout << "Attempts: " << ft.attempts << '\t';
    cout << "Percent: " << ft.percent << '\n';
}
 
void set_pc(free_throws& ft)
{
    if (ft.attempts != 0)
        ft.percent = 100.0f * float(ft.made) / float(ft.attempts);
    else
        ft.percent = 0;
}
 
free_throws& accumulate(free_throws& target, const free_throws& source)
{
    target.attempts += source.attempts;
    target.made += source.made;
    set_pc(target);
    return target;
}
Спасибо.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.01.2021, 15:48
Помогаю со студенческими работами здесь

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

Ошибка преобразования типов при работе со структурами
Здравствуйте. Подскажите, пожалуйста, почему не меня среда ругается. error C2440: =: невозможно преобразовать &quot;Book *&quot; в...

Ошибка доступа к памяти при работе со структурами
Задача состоит следующая создать динамический массив. Т.е кол-во элементов в строках может быть разной. Я решил немного по...

Ошибка при работе со структурами: Expression must be a modifiable lvalue
Здравтсвуйте, не могу найти ошибку в коде: #define _CRT_SECURE_NO_WARNINGS #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include...

Опять сегфолт, на этот раз при работе со структурами
Продолжаю пилить свою программу и вот опять наткнулся на сегфолт при её выполнении. Код, который имеет отношение к проблеме: everyone.h: ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru