У меня возникла путаница в том, как хранить строки в массиве. Цель программы состоит в том, чтобы взять с собой несколько учеников и несколько викторинов из консоли, а затем рассчитать среднее значение указанных оценок викторины на одного ученика, что достаточно просто. Хотя я сталкиваюсь с некоторыми проблемами, когда я пытаюсь принять имена студентов (1-10 строк, основанных на количестве студентов, которые мне дает пользователь). Единственный способ, с помощью которого я могу взять эти данные, - это использовать цикл for, поскольку количество имен, которые мне нужно прочитать, определяется вводом пользователей. Я хотел бы сохранить имена в массиве, но я не уверен, как это сделать. Любая помощь будет оценена по достоинству. Код ниже.Чтение строк с консоли и их хранение в массиве
int main()
{
int students = 0;
getStudents(students);
int quizzes = 0;
getQuizzes(quizzes);
char* studentArray = new char[students];
int* quizArray = new int[quizzes];
double* studentAverage = new double[students];
char student_name[20];
for(int i = 0; i < students; i++)
{
cout << "Enter the students name: ";
cin.get (student_name, 20);
cin.ignore(' ','\n');
studentArray[i]=student_name;
for(int j = 0; j < quizzes; j++)
{
cout << "Enter quiz " << j+1 << ":";
cin >> quizArray[j];
}
studentAverage[i] = calculateAvergage(quizArray,quizzes);
}
^основная программа. проблема возникает во внешнем for-loop. Я вынужден принимать имена внутри цикла, потому что я не могу знать, сколько имен потребуется до выполнения. Я также должен отображать имена позже в программе после завершения цикла, поэтому я не могу просто сделать простой cout < < внутри цикла.
for(int i = 0; i < students; i++)
{
cout << studentArray[i] << setw(10) << studentAverage[i] << endl << endl;
}
^цикл, который отображает данные в конце программы.
Я также добавить, что вывод должен выглядеть для небольшого осветления
How many students? 2
How many quizzes? 3
Enter the students name: John Smith
Enter Quiz 1: 90
Enter Quiz 2: 80
Enter Quiz 3: 75
Enter the students name: John Jones
Enter Quiz 1: 100
Enter Quiz 2: 90
Enter Quiz 3: 80
Student Quiz Average
---------------------------------
John Smith 81.67
John Jones 90.00