Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 06.10.2018
Сообщений: 161

Структуры: список студентов, вывод в порядке убывания среднего балла

08.12.2018, 22:41. Показов 4069. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: Дан список студентов, включающий в себя ФИО, 4 оценки, город проживания студента и высчитывается средний балл.
Результат: 1. Вывести список всех студентов в порядке убывания среднего балла. 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
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
#include<iostream>
using namespace std;
 
struct student {
    char fio[31];
    char addres[41];
    int marks[4];
    double average;
};
 
int main()
{
    int numberOfStudents; //Кол-во всего студентов
 
    cout << "Input number of students: "; 
    cin >> numberOfStudents;
 
    student *pointer = new student[numberOfStudents];
 
    for (int i = 0; i < numberOfStudents; i++) {
        cout << "Enter fio of " << i + 1 << " student: "; //Ввод ФИО
        cin >> pointer[i].fio;
 
        cout<< "Enter addres of " << i + 1 << " student: ";//Ввод адреса
        cin >> pointer[i].addres;
 
        cout << "Enter marks of " << i + 1 << " student: ";//Ввод оценок
        pointer[i].average = 0;
        for (int j = 0; j < 4; j++) {
            cin >> pointer[i].marks[j];
            pointer[i].average += pointer[i].marks[j];
            }
        pointer[i].average /= 4;
    }
 
    for (int i = 0; i < numberOfStudents; i++) {
        for (int j = 0; i < numberOfStudents; j++) {   //Идем по списку производим обмен, проверяем иногородний или нет
            if (pointer[i].average < pointer[j].average && strcmp(pointer[i].addres, "minsk") != 0 && strcmp(pointer[i].addres, "minsk") != 0) {
                student buf = pointer[i];
                pointer[i] = pointer[j];        //ОБМЕН
                pointer[j] = buf;
                int i = 0;
 
                while (strcmp(pointer[i].addres, "minsk") != 0) {
                    cout << pointer[i].fio << "\t" << pointer[i].average << endl;
                    i++;
                    if (i = 0)
                        cout << "No!!!!!" << endl;    //Когда нет иногородних
                }
            }
        }
    }
 
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2018, 22:41
Ответы с готовыми решениями:

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

Выведите фамилии и имена студентов в порядке убывания их среднего балла
Выведите фамилии и имена студентов в порядке убывания их среднего балла

Сортировка структур в порядке убывания среднего балла
П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. Перепишите задачу в сообщение ...

2
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,161
09.12.2018, 00:15
C++
1
for (int j = 0; i < numberOfStudents; j++)
Должно быть:

C++
1
for (int j = 0; j < numberOfStudents; j++)
Добавлено через 1 минуту
C++
1
if (i = 0)
=?

может быть:

C++
1
if (i == 0)
Добавлено через 14 секунд
Может еще ошибки, не особо смотрел
0
1 / 1 / 0
Регистрация: 06.10.2018
Сообщений: 161
11.12.2018, 13:31  [ТС]
Спасибо, исправил. Также заметил ещё ошибку:
не удалил динамический массив.
C++
1
 delete [] pointer;
Но несмотря на это при вводе различных комбинаций результаты следующие:
1. Иногда проходит без проблем.
2. Проходит, но выдаёт большое множество не нужных символов после результата.
3. Проходит, но выдаёт дважды зеркальный результат.
4. Не проходит вовсе. Завершается программа.
Подскажите, пожалуйста, в чём дело?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2018, 13:31
Помогаю со студенческими работами здесь

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

Получить список студентов с указанием среднего балла
имеется информация о студентах группы: Ф.И.О., результаты экзаменационной сессии. Мне надо получить список студентов с указанием среднего...

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

Упорядочить список студентов по возрастанию среднего балла
Имеется код, необходимо упорядочить список студентов по возрастанию среднего балла. Не понимаю, как это сделать. Прошу помочь! ...

Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего балла. Имеющих двойки удалить из списка.
Помогите сделать лабу задание:Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru