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

Определить средний балл за сессию и отсортировать список по сумме баллов

26.05.2009, 21:49. Показов 4341. Ответов 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h> 
#include <iostream.h>
#include <conio.h>
struct student        // Шаблон структуры 
{ char name[20];      // имя
char fam[30];          // фамилия
int year;              // возраст
int mark[5];           // оценки
int average;           // Сумма балов
};
student students[30];      // Массив данных по группе
student buffer;          // Дополнительная структура
int records;          // Количество студентов в группе
int i, j ;
student mass[30];        // Вспомогательные переменные
void main ( )
{ records = 0 ;      // Сначала записей нет
do        // Заполняем массив структур
{ cout <<  "Студент № " << records+1 << endl;
cout <<  "Введите фамилию ";  fflush(stdin) ;
cin >> students [records].fam;
cout <<  "Введите имя  ";
cin >> students [records].name;
cout <<  "Введите возраст ";
cin >> students [records].year;
for(i = 0; i < 5; i++)
{ cout << "     Введите оценку по экзамену №  "  <<  i+1 << endl;
cin >> students[records].mark[i];
}
records++;
cout << "Остановить работу? [1/0]  ";
cin >> i;
}     while(i) ;
for(i = 0; i < records; i++)         // Подсчитывает сумму баллов
{   students [ i ].average = 0;
for (j=0;  j < 5; j++)
students[i].average += students[i].mark[j ];
}
for (i = 0; i < records-1; i++)       // сортирует
for (j = i; j < records; j++)          //     по сумме баллов
if (students[i].average > students[j].average)
{     buffer = mass[i];     // Перестановка элементов
mass[i] = mass[j];         // структуры, особенность
mass[j] = buffer;         // языка C/C++
}
for (i = 0; i < records; i++)     // Выводим результат
{ cout << "\n Студент " << students[i].name  <<  "\t" << students [i].fam ;
cout << " возраст " <<  students [i].year;  
cout << " Сре. бал " <<  students[i].average;
}
}

Нужно переделать так чтобы: в списке студентов группы вычислить количество студентов с именами: Наталья, Владимир, Роман
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.05.2009, 21:49
Ответы с готовыми решениями:

Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего
Ведомость абитуриентов, сдавших вступительные экзамены в университет содержит: Ф. И. О. абитуриента, оценки. Определить средний балл по...

Типизированный файл: Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего балла по университету
Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О. абитуриента, оценки. Определить средний балл по...

Определить средний балл студентов, успешно сдавших сессию, используя двумерный массив
Помогите пожалуйста! Карма +100000. Задан двумерный числовой массив из 25 строк и 7 столбцов, в котором записаны оценки на сессии...

1
 Аватар для insolent
829 / 353 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
27.05.2009, 00:32
1) Используйте bb-коды форматирования - читать тяжело;
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
57
58
59
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <algorithm>
#define n 30
using namespace std;
 
struct student // Шаблон структуры
{ char name[20]; // имя
char fam[30]; // фамилия
int year; // возраст
int mark[5]; // оценки
int average; // Сумма балов
};
 
int main(int argc, char* argv[])
{
    setlocale(0,"");
    int i,j,
        records = 0 ;// Сначала записей нет
    student students[30],buffer; // Массив данных по группе
    do // Заполняем массив структур
    { cout << "Студент № " << records+1 << endl;
    cout << "Введите фамилию "; fflush(stdin) ;
    cin >> students [records].fam;
    cout << "Введите имя ";
    cin >> students [records].name;
    cout << "Введите возраст ";
    cin >> students [records].year;
    for(i = 0; i < 5; i++)
    { cout << " Введите оценку по экзамену № " << i+1 << endl;
    cin >> students[records].mark[i];
    }
    records++;
    cout << "Продолжить? [1/0] ";
    cin >> i;
    _flushall();
    } while(i) ;
    for(i = 0; i < records; i++) // Подсчитывает сумму баллов
    { students [ i ].average = 0;
    for (j=0; j < 5; j++)
        students[i].average += students[i].mark[j ];
    }
    for (i = 0; i < records-1; i++) // сортирует
        for (j = i; j < records; j++) // по сумме баллов
            if (students[i].average > students[j].average)
            { buffer = students[i]; // Перестановка элементов
    students[i] = students[j]; // структуры, особенность
    students[j] = buffer; // языка C/C++
    }
    for (i = 0; i < records; i++) // Выводим результат
    { cout << "\n Студент " << students[i].name << "\t" << students [i].fam ;
    cout << " возраст " << students [i].year;
    cout << " Сре. бал " << students[i].average;
    }
    getchar();
    return 0;
}
, но мысль осталась таже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2009, 00:32
Помогаю со студенческими работами здесь

7.Дан список студентов. Общие поля: Ф.И.О., дата рождения, группа, средний балл. Если средний балл 4 и выше, то указать размер стипендии. Если средний
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;clocale&gt; int main() { setlocale(0,&quot;Rus&quot;); static char res; int...

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

Вычислить средний балл в каждой группе студентов и определить, какая группа имеет наибольший средний балл
две группы студентов (1-ая -13 человек, 2-ая - 8 человек) сдают экзамен по информатике. Написать программу, вычисляющую, средний балл в...

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru