Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 3
1

Поиск в struct

05.10.2014, 14:07. Показов 852. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Не могу разобраться как это реализовать.

1. Создать файл, содержащий сведения о спортсменах футбольной команды. Структура записи: ФИО, номер игрока, возраст, вес, рост. Количество записей произвольное.
2. Написать программу, которая выводит:
- список игроков в порядке убывания их возраста;
- список игроков у которых вес превышает норму Х, а рост меньше, чем У,
Х, У- вводятся с клавиатуры.

Сложность возникла вот с этим :
- список игроков у которых вес превышает норму Х, а рост меньше, чем У.
по одному параметру список выводится как надо а как написать условия для одновременного выполнения 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
 double  x,y;
 
        x = Edit6->Text.ToDouble();
        x = StrToFloat(Edit6->Text);
        y = Edit6->Text.ToInt();
        y = StrToFloat(Edit6->Text);
 Tfut st, *mas_Z;
 Tfut st1, *mas_S;
        Fz = fopen(File_fut.c_str(),"rb");
        int D_f = fileno(Fz);             // Находим дескриптор файла
        int len = filelength(D_f);      // Находим размер файла
        int i, j, kol;
        kol = len/size;     //Количество записей в файле
        mas_Z = new Tfut[kol];
   //     mas_S = new Tfut[kol] ;
// Считываем записи из файла в динамический массив
        for (i=0; i < kol; i++)
            fread((mas_Z+i), size, 1, Fz);
        fclose(Fz);
        Memo1->Lines->Add("--------Сортировка по параметрам--------");
        for (i=0; i < kol; i++)
// 
                if (mas_Z[i].mas > x && mas_Z[i].rost < y)  // с одним условием выведет все как надо, вместе не выводит не чего.
                       mas_S[i] = mas_Z[i];
                       Out(mas_S[i], Memo1);  // функция печати в немо.
                                       
     delete []mas_S;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2014, 14:07
Ответы с готовыми решениями:

Поиск по элементам в list<struct>
Надо найти героя по ID, отнять от его HP 30 и после этого вывести то, сколько у него осталось HP и...

Struct sockaddr vs. struct sockaddr_in
Вопрос,связанный с переносимостью кода на другие платформы. Читаю эту книжку...

Как открыть struct в struct
Здравствуйте, есть код, мне нужно узнать как можно открыть struct в struct, к примеру чтобы...

typedef struct Foo или struct Foo
В чём разница между: typedef struct { int a; }Foo; и struct Foo { int a; }

5
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
05.10.2014, 17:14 2
Вероятно, так будет корректней:
C++
1
2
3
4
5
6
7
8
for( i = 0; i < kol; i++ ) 
{
    if ( ( mas_Z[ i ].mas > x ) && ( mas_Z[ i ].rost < y ) )
    {
        mas_S[ i ] = mas_Z[ i ];
        Out( mas_S[ i ], Memo1 );  // функция печати в немо.
    }
}
И покажи объявление структуры.
0
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 3
05.10.2014, 18:31  [ТС] 3
C++
1
2
3
4
5
6
7
struct Tfut {
                char FIO[50];
                double name;
                        double age;
                        double mas;
                        double rost;
                 }  fut;
Вашу версию кода пробовал, не чего не выводит.
Одно условие в if'e обрабатывает корректно со 2м не работает.
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
05.10.2014, 18:43 4
Значит, смотри значения переменных в отладчике.

Кстати, зачем закомментирована строчка mas_S = new Tfut[kol];? Если память не выделять, получишь либо глюки, либо av.
0
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 3
05.10.2014, 18:50  [ТС] 5
Вот что значит лень набирать мелкие куски кода. у вас хорошая "аура" ))
C++
1
2
3
4
 x = Edit6->Text.ToDouble();
        x = StrToFloat(Edit6->Text);
        y = Edit6->Text.ToInt();
        y = StrToFloat(Edit6->Text);
Два эдита одинаковых убили пол дня.
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
05.10.2014, 18:56 6
Цитата Сообщение от noobCpp Посмотреть сообщение
Два эдита одинаковых убили пол дня.

Вот так оно и бывает со всякими Edit6, Edit256... Надо нормальные названия давать, информативные.
0
05.10.2014, 18:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2014, 18:56
Помогаю со студенческими работами здесь

Struct{...}
Драсьте мне нужна помощь. Написать программу ввода и вывода студентов группы и каждый из них...

struct
Привествую ) Такой вопрос назрел ) Хочу создать переменную типа структуры: Всегда создавал...

Struct
У мя есть структура: указатель на предыдущий, следующий и значение... Ввод/вывод работает, а вот...

struct (с++)
Кто может написать полный синтаксис структуры. Чем отличается структура от класса ? Всем...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru