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

Не могу понять, как исправить ошибку в задаче на структуры

22.12.2021, 00:33. Показов 805. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Есть задача:
Объект – товар в магазине игрушек. Известны наименование товара, возрастная категория, производитель, цена. Сосчитать количество игрушек для детей в возрасте от 1 до 7 лет.
Не представляю как вывести в конечном итоге количество игрушек. Программа учитывает только последние введённые данные

Код:
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
*#include <iostream>
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
struct Toy {
    char name[30];
    int age;
    char factory[30];
    int cost;
};
 
void printInformation(Toy t)
{
    setlocale(0, "");
    cout << "Наименование игрушки: " << t.name << endl;
    cout << "Возрастная категория: " << t.age << endl;
    cout << "Производитель: " << t.factory << endl;
    cout << "Стоимость товара: " << t.cost << endl;
}
 
int main()
{
    setlocale(0, "");
    Toy t;
    int n, i, k = 0;
    cout << "Число наименований в списке: ";
    cin >> n;
    for (i = 0; i < n; i++)
    {
 
        cout << "Наименование игрушки: ";
        cin >> t.name;
        cout << "Возрастная категория: ";
        cin >> t.age;
        cout << "Производитель: ";
        cin >> t.factory;
        cout << "Стоимость товара: ";
        cin >> t.cost;
    }
 
 
    for (i = 0; i < n; i++)
    {
        if (t.age < 8)
            ++k;
    }
    cout << k << endl;
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2021, 00:33
Ответы с готовыми решениями:

Структура: Не могу понять, почему выдает ошибку и как собственно эту ошибку можно исправить?
Привет,не могу понять почему ошибку выдает и как сбстно эту ошибку можно исправить? #include &lt;stdio.h&gt; #include...

Не могу понять, как исправить ошибку
В маткад не так давно работаю, немного не пойму, что это за ошибка? Как ее исправить?

Не могу понять как исправить ошибку
Есть программа: program new_element; const Ar : аггау of Integer = (11, 12, 13, 14, 15, 15, 16, 17, 18, 19); var i: Integer; ...

17
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6212 / 2909 / 1045
Регистрация: 01.06.2021
Сообщений: 10,734
22.12.2021, 00:42
вот так работает (убрал лишний мусор, программу не менял)

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
#include <iostream>
 
using namespace std;
 
struct Toy {
    char name[30];
    int age;
    char factory[30];
    int cost;
};
 
int main()
{
    setlocale(0, "");
    Toy t;
    int n, i, k = 0;
    cout << "Число наименований в списке: ";
    cin >> n;
    for (i = 0; i < n; i++)
    {
 
        cout << "Наименование игрушки: ";
        cin >> t.name;
        cout << "Возрастная категория: ";
        cin >> t.age;
        cout << "Производитель: ";
        cin >> t.factory;
        cout << "Стоимость товара: ";
        cin >> t.cost;
    }
 
 
    for (i = 0; i < n; i++)
    {
        if (t.age < 8)
            ++k;
    }
    cout << k << endl;
 
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
22.12.2021, 00:46
Цитата Сообщение от Royal_X Посмотреть сообщение
вот так работает
работает, но неправильно

Servus, или сразу подсчитывайте при вводе или объявите массив структур

если пишите на С++ рекомендую перейти на строки string. наименование и производитель могут состоять из нескольких слов, т.е. ввод лучше не через getline
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6212 / 2909 / 1045
Регистрация: 01.06.2021
Сообщений: 10,734
22.12.2021, 00:51
Цитата Сообщение от Yetty Посмотреть сообщение
наименование и производитель могут состоять из нескольких слов
+ стоимость и возрастная категория товара могут быть отрицательными числами

Добавлено через 1 минуту
Цитата Сообщение от Yetty Посмотреть сообщение
работает, но неправильно
значит, еще что-то нужно выбросить
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
22.12.2021, 00:51
Цитата Сообщение от Servus Посмотреть сообщение
Известны наименование товара, возрастная категория, производитель, цена.
здесь точно не было позиции 'количество' ?
0
0 / 0 / 0
Регистрация: 21.11.2021
Сообщений: 9
22.12.2021, 01:03  [ТС]
Цитата Сообщение от Yetty Посмотреть сообщение
здесь точно не было позиции 'количество' ?
Да, такой позиции не было

Добавлено через 3 минуты
Цитата Сообщение от Yetty Посмотреть сообщение
Servus, или сразу подсчитывайте при вводе или объявите массив структур
Массив структур... Попробую, спасибо
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
22.12.2021, 01:03
Цитата Сообщение от Servus Посмотреть сообщение
такой позиции не было
может лучше уточните условие ? в магазине прежде всего нужно знать количество каждого товара
0
0 / 0 / 0
Регистрация: 21.11.2021
Сообщений: 9
22.12.2021, 01:33  [ТС]
А можете пожалуйста помочь разобраться в массиве структур на примере этой задачи? Изучил примеры, но в голове всё равно не укладывается, как это работает

Добавлено через 1 минуту
Цитата Сообщение от Yetty Посмотреть сообщение
может лучше уточните условие ? в магазине прежде всего нужно знать количество каждого товара
У нашего препода бесполезно такие вещи уточнять, поэтому решил, что количество товара будет вводиться вручную в самом начале
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6212 / 2909 / 1045
Регистрация: 01.06.2021
Сообщений: 10,734
22.12.2021, 01:41
Цитата Сообщение от Servus Посмотреть сообщение
количество товара будет вводиться вручную в самом начале
у вас вводится только количество наименований, а Yetty говорит о количестве каждого товара.
0
0 / 0 / 0
Регистрация: 21.11.2021
Сообщений: 9
22.12.2021, 01:47  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
у вас вводится только количество наименований, а Yetty говорит о количестве каждого товара.
А, извините, неправильно понял. Да, по идее такой пункт должен быть, но условии не дано, значит без него можно работать
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
22.12.2021, 01:59
Цитата Сообщение от Servus Посмотреть сообщение
можете пожалуйста помочь разобраться
могу Вам помочь с кодом, в котором будет количество каждой игрушки, в конце концов при вводе можно вводить 1 (количество)
0
0 / 0 / 0
Регистрация: 21.11.2021
Сообщений: 9
22.12.2021, 02:02  [ТС]
Цитата Сообщение от Yetty Посмотреть сообщение
могу Вам помочь с кодом, в котором будет количество каждой игрушки, в конце концов при вводе можно вводить 1 (количество)
буду благодарен
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
22.12.2021, 02:04
Servus, так что нужно подсказать, что именно не понятно ?
1
0 / 0 / 0
Регистрация: 21.11.2021
Сообщений: 9
22.12.2021, 02:24  [ТС]
Цитата Сообщение от Yetty Посмотреть сообщение
так что нужно подсказать, что именно не понятно ?
Не представляю, как можно сформировать рабочий массив структур. Это же по идее обычный массив, но при этом каждый параметр у него вводится отдельно. Тяжело даётся понимание работы структуры в целом. В ещё я вроде бы переделал немного и оно заработало, но не уверен, правильно ли это. Через string пока не переписывал:
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
#include <iostream>
 
using namespace std;
 
struct Toy {
    char name[30];
    int age;
    char factory[30];
    int cost;
};
 
int main()
{
    setlocale(0, "");
    Toy arr[10];
    int n, i, k = 0;
    cout << "Число наименований в списке: ";
    cin >> n;
    for (i = 0; i < n; i++)
    {
        cout << "Наименование игрушки: ";
        cin >> arr[i].name;
        cout << "Возрастная категория: ";
        cin >>arr[i].age;
        cout << "Производитель: ";
        cin >> arr[i].factory;
        cout << "Стоимость товара: ";
        cin >> arr[i].cost;
    }
 
 
    for (i = 0; i < n; i++)
    {
        if (arr[i].age > 0 && arr[i].age < 8)
            ++k;
    }
    cout << k << endl;
 
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
22.12.2021, 02:33
Цитата Сообщение от Servus Посмотреть сообщение
правильно ли это:
да, в принципе правильно

как вариант на Ваше условие. считается количество наименований
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
#include <iostream>
#include <string>
using namespace std;
 
struct Shop
{
    string toy;    
    double age;
    string factory;    
    double price;
};
 
int main() 
{   
    int n, count=0;    
    cout << "n="; cin >> n;    
    
      Shop *data = new Shop[n];
    
    for(int i = 0; i < n; i++)
    { 
        cin.ignore();       
        cout << "Product " << i+1 << ":\n";        
        cout << "toy: ";
        getline(cin, data[i].toy);        
        cout << "age: "; cin >> data[i].age;
        cin.ignore();
        cout << "factory: ";
        getline(cin, data[i].factory);
        cout << "price: "; cin >> data[i].price;
    } 
    
    for(int i = 0; i < n; i++)    
        if (data[i].age>=1 && data[i].age<=7) count++;
        
    cout << "COUNT=" << count << "\n";  
        
    delete[]data;
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 21.11.2021
Сообщений: 9
22.12.2021, 02:38  [ТС]
Большое спасибо, вроде разобрался)
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
22.12.2021, 07:29
Yetty, а что с

Цитата Сообщение от Yetty Посмотреть сообщение
ввод лучше не через getline
Цитата Сообщение от Yetty Посмотреть сообщение
getline(cin, data[i].toy);
противоречите сами себе!
1
22.12.2021, 13:06

Не по теме:

marat_miaki, там опечатка

Цитата Сообщение от Yetty Посмотреть сообщение
наименование и производитель могут состоять из нескольких слов, т.е. ввод лучше не через getline
из контекста это очевидно. несколько слов вводятся через getline

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2021, 13:06
Помогаю со студенческими работами здесь

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

Не могу понять, как исправить ошибку
Есть задание: &quot;Дано натуральное число N. Вычислить произведение первых N сомножителей: р = ...

Не могу понять, как исправить ошибку
Здравствуйте, помогите с моей программой. При компиляции всё замечательно и нет никаких проблем, однако при запуске вылетает много...

Не могу понять как исправить ошибку
#include &lt;vcl.h&gt; #pragma hdrstop #include &quot;Unit1.h&quot; //--------------------------------------------------------------------------- ...

Не могу понять как исправить ошибку
Скачал библиотеки: ExcelDataReader, ExcelDataReader.DataSet; using System; using System.Collections.Generic; using System.Drawing;...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru