266 / 81 / 18
Регистрация: 05.04.2018
Сообщений: 1,100
Записей в блоге: 1
1

ввод данных в цикле

12.10.2018, 16:07. Показов 4877. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет. Решил сделать такую задачу:
Кликните здесь для просмотра всего текста
1.Описать структуру с именем STUDENT, содержащую следующие поля:
• NAME – фамилия и инициалы;
• GROUP – номер группы;
• SES - успеваемость (массив из пяти элементов).
2. Написать программу, выполняющую следующие действия :
• ввод с клавиатуры данных в массив STUD1, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию содержимого поля GROUP;
• вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 4,0;
• если таких нет, вывести соответствующее сообщение.

Задачи на структуры

Но ввести данные по циклу не получается после первой итерации, последующие уже не запрашивают ввод данных.
вот эта часть кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Functions::fill(STUDENT *stud1)
{
    stud1 = new STUDENT[size];
    
    for(int i = 0; i < size; ++i)
    {
        cout << i + 1 << ":\nName: ";
        getline(cin, stud1[i].name);
        cout << "Group: ";
        cin >> stud1[i].group;
        cout << "Ses:\n";
        
        for(int j = 0; j < 5; ++j)
        {
            cout << j + 1 << ": ";
            cin >> stud1[i].ses[j];
        }
    }
}
это весь код(до конца пока задание не делал, черновик):
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
 
using namespace std;
 
struct STUDENT
{
    string name;
    int group;
    int ses[5];
};
 
class Functions
{
private:
    const int size = 10;
public:
    void fill(STUDENT *);
    void sort(STUDENT *);
};
 
int main()
{
    STUDENT *stud1;
    Functions func;
    
    func.fill(stud1);
    func.sort(stud1);
    
    return 0;
}
 
void Functions::fill(STUDENT *stud1)
{
    stud1 = new STUDENT[size];
    
    for(int i = 0; i < size; ++i)
    {
        cout << i + 1 << ":\nName: ";
        getline(cin, stud1[i].name);
        cout << "Group: ";
        cin >> stud1[i].group;
        cout << "Ses:\n";
        
        for(int j = 0; j < 5; ++j)
        {
            cout << j + 1 << ": ";
            cin >> stud1[i].ses[j];
        }
    }
}
 
void Functions::sort(STUDENT *stud1)
{
    int buff = 0, index = 0;
    for(int i = 0; i < size; ++i)
    {
        index = i;
        for(int j = i; j < size; ++j)
        {
            if(stud1[index].group > stud1[j].group) {
                index = j;
            }
        }
        buff = stud1[i].group;
        stud1[i].group = stud1[index].group;
        stud1[i].group = buff;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2018, 16:07
Ответы с готовыми решениями:

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

В цикле пропускается ввод данных
В цикле пропускает ввод названия продукта и даты изготовления. Почему и как исправить? #include...

Дана температура за каждый день декабря. Определить количество дней, когда был мороз. (Ввод данных осуществлять в цикле
Дана температура за каждый день декабря. Определить количество дней, когда был мороз. (Ввод данных...

Ввод строки в цикле
Собственно проблема:при запросе о продолжении цикла ввожу один,и чтобы программа работала корректно...

1
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
12.10.2018, 16:29 2
Как-то так попробуйте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for(int i = 0; i < size; ++i)
{
    cout << i + 1 << ":\nName: ";
    getline(cin, stud1[i].name);
    cout << "Group: ";
    cin >> stud1[i].group;
    cout << "Ses:\n";
        
    for(int j = 0; j < 5; ++j)
    {
        cout << j + 1 << ": ";
        cin >> stud1[i].ses[j];
        cin.clear();
    }
    cin.ignore();
}
1
12.10.2018, 16:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2018, 16:29
Помогаю со студенческими работами здесь

Ввод массива в цикле while
У меня в представленном коде, цикл while должен запрашивать ввод массива объектов, и прерываться по...

Простейший ввод числа в цикле
Я, видимо, очень сильно туплю, раз никак не могу понять, почему при &quot;плохом&quot; вводе, т.е. буквы,...

Ввод элементов массива в цикле
помогите ...нужно написать программу по заданию на картинке 3 вариант отмечен

Не идет ввод и вывод в цикле
Не могу понять почему при проходе этого цикла нет никакого вывода #include &lt;stdio.h&gt; int main()...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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