ЗаданиеС клавиатуры ввести последовательность структур, содержащих данные о
результатах сессии студентов группы: <Фамилия, имя>, <Список рейтинговых
оценок>. Распечатать введенные данные в виде таблицы, отсортировав их по
фамилиями студентов в алфавитном порядке. Определить студентов с
самым высоким средним рейтинговым баллом.
Мой код#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string.h>
using namespace std;
struct Student
{
char familia[20];
int exam;
};
void main()
{
Student sot[128];
int i, j, a, m;
char* str;
cout << "Введите количество студентов: ";
cin >> a;
for (i = 0; i < a; i++)
{
cout << "\nФамилия " << i + 1 << "-ого студента: ";
cin >> sot[i].familia;
cout << "\nРезультаты сессии: ";
cin >> sot[i].exam;
}
for (j = 0; j <= a; j++)
{
for (i = 1; i < a; i++)
{
if (strcmp(sot[i - 1].familia, sot[i].familia) > 0)
{
strcpy(str, sot[i - 1].familia);
strcpy(sot[i - 1].familia, sot[i].familia);
strcpy(sot[i].familia, str);
}
}
}
for (i = 0; i < a; i++)
{
cout << sot[i].familia << endl;
cout << sot[i].exam << endl << endl;
}
}
Но, увы, возникает ошибка: Ошибка C4700 использована неинициализированная локальная переменная "str".
Подскажите как можно устранить эту проблему или покажите другой способ сортировки структур(qsort, увы, не канает)?