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

Поиск по массиву структур

21.11.2010, 18:58. Показов 1092. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать структуру, которая содержит информацию о покупателе (имя, фамилия, адрес в виде вложеной структуры и т. д.) и заполнить её в виде массива для нескольких покупателей, а потом вывести информацию о тех, кто дал соглассие на рассылку. В общем первую часть - заполнение я написал, а вот с поиском не могу разобраться

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
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i, *p;
    struct place
        {int index;
        char city[20];
        int home;
        int kvart;};
    struct pokupatel
        {char name[30];
         char fam[30];
        char number[30];
        char number1[30];
        struct place place;
        char sum[30];
        char sogl[4]; // поле согласие на рассылку
    };
    struct pokupatel basa[3];
    for (i=0; i<3; i++)
    {printf ("\n Enter through the Enter a name, surname, phone number, card number, postal index, town house, apartment or the maximum amount of the purchase and distribution agreement (yes or no) for the buyer #%d\n", i+1);
    scanf ("%s%s%s%d%s%d%d%s%s", basa[i].name, basa[i].fam, basa[i].number, basa[i].number1, &basa[i].place.index, &basa[i].place.city, &basa[i].place.home, &basa[i].place.kvart, basa[i].sum, basa[i].sogl);
    
    }
    for (i=0; i<3; i++)
    if (basa[i].sogl=="yes") // почему-то не прокатывает
    printf("");
    getchar();
    getchar();
    getchar();
   }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2010, 18:58
Ответы с готовыми решениями:

Можно ли присвоить одному массиву структур значение другого массива структур и записать его в файл
Можно ли присвоить одному массиву структур значение другого массива структур и записать его в файл?

Обращение к массиву структур
как обратиться к массиву структуры (arr) я пытаюсь это сделать в 64 строке, но выдает ошибку... #include &lt;string.h&gt; #include...

Обращение к массиву структур
Структура объявлена в отдельной трансляции, там же объявлена функция заполнения двумерного массива структур, а по возвращении в main не...

3
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
21.11.2010, 19:17
C
1
if (!strcmp(basa[i].sogl,"yes")) printf("yes"); //29строка
Цитата Сообщение от zaxi Посмотреть сообщение
char sogl[4]; // поле согласие на рассылку
а почему вообще не сделать его bool (или int если на Си)?

Добавлено через 1 минуту
И структуру лучше объявлять вне функций
0
2 / 2 / 0
Регистрация: 18.01.2010
Сообщений: 23
22.11.2010, 11:57  [ТС]
спасибо за помощь, вроде работает. про bool вообще первый раз от вас услышал, кроме того в универе пишем только под дос, а это значит, еще что-то надо придумывать для ввода
0
2 / 2 / 0
Регистрация: 18.01.2010
Сообщений: 23
04.12.2010, 18:30  [ТС]
дали дополнительное задание по этой програмке - нужно сделать поиск в виде функции, которая бы выводила покупателей по признаку согласия. в цикле я это сделал, а вот вынести в функцию не получается. пожалуста, подскажите, как это можно реализвовать

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
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i, *p;
    char searh[4];
    struct place
        {int index;
        char city[20];
        int home;
        int kvart;};
    struct pokupatel
        {char name[30];
         char fam[30];
        char id[30];
        char card[30];
        struct place place;
        int sum;
        char sogl[4];
    };
    struct pokupatel basa[3];
    for (i=0; i<3; i++)
    {printf ("\n Enter through the Enter a name, surname, phone number, card number, postal index, town house, apartment or the maximum amount of the purchase and distribution agreement (yey or no) for the buyer #%d\n", i+1);
    
        scanf ("%s%s%s%s%s%d%s%d%d%d", basa[i].sogl, basa[i].name, basa[i].fam, basa[i].id, 
        basa[i].card, &basa[i].place.index, basa[i].place.city, 
        &basa[i].place.home, &basa[i].place.kvart, &basa[i].sum);
    
    }
    printf("Yes or no\n"); //начало поиска, организованного обычными циклами
    scanf("%s", searh); 
    if (!strcmp(searh,"yes"))
    {
    for (i=0; i<3; i++)
    if (!strcmp(basa[i].sogl,"yes"))
    printf("#%s#%s#%s#%s#%d#%s#%d#%d#%d#%s\n", basa[i].name, basa[i].fam, 
        basa[i].id, basa[i].card, basa[i].place.index, basa[i].place.city, 
        basa[i].place.home, basa[i].place.kvart, basa[i].sum, basa[i].sogl);
    }
    if (!strcmp(searh,"no"))
    {
    for (i=0; i<3; i++)
    if (!strcmp(basa[i].sogl,"no"))
    printf("#%s#%s#%s#%s#%d#%s#%d#%d#%d#%s\n", basa[i].name, basa[i].fam, 
        basa[i].id, basa[i].card, basa[i].place.index, basa[i].place.city, 
        basa[i].place.home, basa[i].place.kvart, basa[i].sum, basa[i].sogl);
    }
    getchar();
    getchar();
    getchar();
   }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2010, 18:30
Помогаю со студенческими работами здесь

Адресное обращение к массиву структур
когда пробегаю по циклу, например, обращаюсь вот так: *(a+i).pole_1.pole_2 Так понел, что это неправильно. Как тогда, подскажите...

Обращение к массиву структур, почему именно так?
Почему в не которых функциях к елементам структуры обращаются *invtry , а в других просто invtry? #include &lt;stdafx.h&gt; #include...

не могу найти ошибку в поиске по массиву структур
Здравствуйте. Дали задание: Дан массив структур. Каждая структура содержит информацию о книгах в библиотеке (придумать 5 полей...

Можно ли обращаться к полям структуры с используя индексацию, т.е. как к одномерному массиву? Массив полей структур
Значит идея такая. Есть структура struct MyStruct { int qw; double qe; }; MyStruct qr; //пример по сложнее ...

Подсчитать общее количество часов по массиву структур "Субботник"
Дан массив структур, в котором содержится график выхода на субботники по меся-цам в квартале сотрудников лаборатории: ФИО, январь, февраль,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 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