Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
zaxi
2 / 2 / 0
Регистрация: 18.01.2010
Сообщений: 23
21.11.2010, 18:58     Поиск по массиву структур #1
Создать структуру, которая содержит информацию о покупателе (имя, фамилия, адрес в виде вложеной структуры и т. д.) и заполнить её в виде массива для нескольких покупателей, а потом вывести информацию о тех, кто дал соглассие на рассылку. В общем первую часть - заполнение я написал, а вот с поиском не могу разобраться

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();
   }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2010, 18:58     Поиск по массиву структур
Посмотрите здесь:

Адресное обращение к массиву структур C++
C++ Поиск по массиву
не могу найти ошибку в поиске по массиву структур C++
C++ Поиск по массиву
Не осуществляется поиск по массиву C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.11.2010, 19:17     Поиск по массиву структур #2
C
1
if (!strcmp(basa[i].sogl,"yes")) printf("yes"); //29строка
Цитата Сообщение от zaxi Посмотреть сообщение
char sogl[4]; // поле согласие на рассылку
а почему вообще не сделать его bool (или int если на Си)?

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

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();
   }
Yandex
Объявления
04.12.2010, 18:30     Поиск по массиву структур
Ответ Создать тему
Опции темы

Текущее время: 17:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru