Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2016, 09:58   #11
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
с каких пор? яб только const добавил
Не подскажите как добавить проверку на принадлежность студентов к конкретной группе, а то что то никак не получается?
Max00766 вне форума Ответить с цитированием
Старый 23.04.2016, 11:19   #12
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
с каких пор? яб только const добавил
С тех пор, когда это лаба. Завтра ему надо будет вводить с файла или клавы, или он глюки начнет ловить... вы ему будете объяснять, почему в этом случае так можно, а в остальных не особо?

Цитата:
Сообщение от Max00766 Посмотреть сообщение
Не подскажите как добавить проверку на принадлежность студентов к конкретной группе, а то что то никак не получается?
Я ж вам уже написал: заводите массив студентов, заполняете его и в цикли strcmp проверяете.
p51x вне форума Ответить с цитированием
Старый 23.04.2016, 11:52   #13
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
С тех пор, когда это лаба. Завтра ему надо будет вводить с файла или клавы, или он глюки начнет ловить... вы ему будете объяснять, почему в этом случае так можно, а в остальных не особо?


Я ж вам уже написал: заводите массив студентов, заполняете его и в цикли strcmp проверяете.
Не пойму как сделать список через массив, в примере было только так как я сделал просто
Max00766 вне форума Ответить с цитированием
Старый 23.04.2016, 12:02   #14
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
С тех пор, когда это лаба. Завтра ему надо будет вводить с файла или клавы, или он глюки начнет ловить... вы ему будете объяснять, почему в этом случае так можно, а в остальных не особо?


Я ж вам уже написал: заводите массив студентов, заполняете его и в цикли strcmp проверяете.
Вот сделал через массив, но все равно не доходит как сделать проверку(
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Student_tag{
    char *name;
    char *group;
    int scoreMath;
    int scorePhysic;
    int scoreTech;
    int scoreProgramm;
    int scoreStatistic;
} Student;

int main()
{
    Student student[20];
    Student st1;
    Student st2;
    Student st3;
    Student st4;

    student[0] = st1;
    student[1] = st2;
    student[2] = st3;
    student[3] = st4;


    st1.name = "Bolgar Max";
    st1.group = "1PR";
    st1.scoreMath = 4;
    st1.scorePhysic = 3;
    st1.scoreTech = 5;
    st1.scoreProgramm = 5;
    st1.scoreStatistic = 5;

    st2.name = "Motuz Dmutro";
    st2.group = "1PR";
    st2.scoreMath = 5;
    st2.scorePhysic = 4;
    st2.scoreTech = 3;
    st2.scoreProgramm = 3;
    st2.scoreStatistic = 5;

    st3.name = "Gens Aleksei";
    st3.group = "1PR";
    st3.scoreMath = 3;
    st3.scorePhysic = 3;
    st3.scoreTech = 3;
    st3.scoreProgramm = 3;
    st3.scoreStatistic = 3;

    st4.name = "Rybas Denis";
    st4.group = "1PR";
    st4.scoreMath = 5;
    st4.scorePhysic = 5;
    st4.scoreTech = 5;
    st4.scoreProgramm = 5;
    st4.scoreStatistic = 5;

    if (strcmp(st1.group,st2.group)==0){
     printf("%s\n",st1.name);
     printf("%s\n",st2.name);}
    if (strcmp(st3.group,st4.group)==0){
     printf("%s\n",st3.name);
     printf("%s\n",st4.name);}

}
Max00766 вне форума Ответить с цитированием
Старый 23.04.2016, 12:10   #15
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Попытался сделать такую проверку:
Код:
    for (i=0; i <= 20; i++)
    {
        if (strcmp(student[i],student[i+1])==0)
        {
           printf("%s\n",student[i]) ;
        }
    }
Но вылазит ошибка "error: incompatible type for argument 2 of 'strcmp'|"
На строке
Код:
 if (strcmp(student[i],student[i+1])==0)
Max00766 вне форума Ответить с цитированием
Старый 23.04.2016, 14:08   #16
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
С тех пор, когда это лаба. Завтра ему надо будет вводить с файла или клавы, или он глюки начнет ловить... вы ему будете объяснять, почему в этом случае так можно, а в остальных не особо?
лаба не лаба, а делать так МОЖНО. и делается так постоянно.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 23.04.2016, 14:24   #17
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Но вылазит ошибка "error: incompatible type for argument 2 of 'strcmp'|"
Ну так вы говорите ХОЧУ СРАВНИТЬ ГРУППУ, а СРАВНИВАЕТЕ СТУДЕНТА строкой...

Цитата:
лаба не лаба, а делать так МОЖНО. и делается так постоянно.
А еще можно разыменовывать нулевой указатель... Тут раздел фриланса, где дают готовые ответы или все таки проф. раздел, где люди пытаются разобраться и научится?
p51x вне форума Ответить с цитированием
Старый 23.04.2016, 14:27   #18
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

в 21-м веке на С пишут так:
Код:
#include <stdio.h>
#include <stdlib.h>

struct Student {
    const char *name;
    const char *group;
    int scoreMath;
    int scorePhysic;
    int scoreTech;
    int scoreProgramm;
    int scoreStatistic;
};

int main()
{
    struct Student students[] = {
        {
            .name = "Болгар Максим Сергеевич",
            .group = "1ПР",
            .scoreMath = 4,
            .scorePhysic = 3,
            .scoreTech = 5,
            .scoreProgramm = 5,
            .scoreStatistic = 5,
        },
        {
            .name = "Мотуз Дмитрий Александрович",
            .group = "1ПР",
            .scoreMath = 5,
            .scorePhysic = 4,
            .scoreTech = 3,
            .scoreProgramm = 3,
            .scoreStatistic = 5,
        },
        {
            .name = "Генс Алексей Сергеевич",
            .group = "1ПР",
            .scoreMath = 3,
            .scorePhysic = 3,
            .scoreTech = 3,
            .scoreProgramm = 3,
            .scoreStatistic = 3,
        },
        {
            .name = "Рыбась Денис Батькович",
            .group = "1ПР",
            .scoreMath = 5,
            .scorePhysic = 5,
            .scoreTech = 5,
            .scoreProgramm = 5,
            .scoreStatistic = 5,
        },
    };

    for (size_t i = 0; i < sizeof(students) / sizeof(students[0]); i++) {
        struct Student *s = &students[i];
        printf("%s\n", s->name);
    }

    return 0;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 23.04.2016 в 14:38.
pproger вне форума Ответить с цитированием
Старый 23.04.2016, 14:31   #19
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
А еще можно разыменовывать нулевой указатель
при этом попадешь на UB. а инициализировать указатель строковым литералом законная операция. идиотское сравнение.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 23.04.2016, 15:01   #20
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
в 21-м веке на С пишут так:
Код:
#include <stdio.h>
#include <stdlib.h>

struct Student {
    const char *name;
    const char *group;
    int scoreMath;
    int scorePhysic;
    int scoreTech;
    int scoreProgramm;
    int scoreStatistic;
};

int main()
{
    struct Student students[] = {
        {
            .name = "Болгар Максим Сергеевич",
            .group = "1ПР",
            .scoreMath = 4,
            .scorePhysic = 3,
            .scoreTech = 5,
            .scoreProgramm = 5,
            .scoreStatistic = 5,
        },
        {
            .name = "Мотуз Дмитрий Александрович",
            .group = "1ПР",
            .scoreMath = 5,
            .scorePhysic = 4,
            .scoreTech = 3,
            .scoreProgramm = 3,
            .scoreStatistic = 5,
        },
        {
            .name = "Генс Алексей Сергеевич",
            .group = "1ПР",
            .scoreMath = 3,
            .scorePhysic = 3,
            .scoreTech = 3,
            .scoreProgramm = 3,
            .scoreStatistic = 3,
        },
        {
            .name = "Рыбась Денис Батькович",
            .group = "1ПР",
            .scoreMath = 5,
            .scorePhysic = 5,
            .scoreTech = 5,
            .scoreProgramm = 5,
            .scoreStatistic = 5,
        },
    };

    for (size_t i = 0; i < sizeof(students) / sizeof(students[0]); i++) {
        struct Student *s = &students[i];
        printf("%s\n", s->name);
    }

    return 0;
}
Выбивает такую ошибку, когда пробую использовать Ваш пример:
11.jpg
Max00766 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Списки. Вхождение списка в другой LifeWind Помощь студентам 2 16.06.2013 15:21
Списки TList. Инвертирование списка. Человек_Борща Общие вопросы Delphi 3 12.05.2013 06:07
С++ Строки - списки. Удаление элементов списка. Daramos Помощь студентам 0 16.12.2010 09:05
СИ. Списки. Описание структуры односвязного списка Jane-sad Помощь студентам 9 17.05.2010 14:40
Списки. Удаление элемента из списка. thexqn Помощь студентам 0 11.05.2010 09:04