Имеется следующая проблема. Есть функция для расчета среднего балла (индивидуальных и общего). Данные должны браться из внешнего массива. Однако, как я понял при пошаговой прогонке, они не берутся, и переменная остается со стандартным значением, выдаваемым при объявлении без инициализации. Значения в первую структуру вводятся с клавиатуры, чтобы не захламлять этот кусок кода включать не стал.
#include <iostream>
#include <string>
#include <Windows.h>
#include <utility>
#include <algorithm>
struct STUDENT
{
std::string Name;
short Year;
int Rating[5];
};
struct StudAver
{
double Average;
};
void sortRat(STUDENT* STUD, int numOfStud)
{
StudAver* StAv = new StudAver[(sizeof(STUD->Rating) / sizeof(STUD->Rating[0]))];
for (int j = 0; j < (sizeof(STUD->Rating) / sizeof(STUD->Rating[0])); ++j)
{
StAv[j].Average += STUD->Rating[j];
StAv[j].Average /= (sizeof(STUD->Rating) / sizeof(STUD->Rating[0]));
std::cout << StAv[j].Average;
}
double average = 0;
for (int i = 0; i < numOfStud; ++i)
average += StAv[i].Average;
average /= (numOfStud);
std::cout << "\nСписок студентов, чей балл превышает средний:\n";
for (int k = 0; k < numOfStud; ++k)
{
if (StAv[k].Average > average)
std::cout << STUD->Name << '\n';
}
delete[] StAv;
StAv = nullptr;
}
int main()
{
sortRat(STUD->Rating, numOfStud);
}
Можно ли double "засунуть" в bitset, чтобы он вывел его в 2виде?
Отладчик gdb не показывает содержимое переменной типа std::string
После вписывания массива пишет - Вызвано исключение по адресу 0x00502974 в Project2exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDFDFE01