Получить несколько входов в массиве

Для этого кода у меня есть пользовательский ввод, однако многие студенты хотят, чтобы он / она попросили их ввести свои имена и результаты тестов.

#include <iostream>
using namespace std;

int main ()
{
int count = 0, students, names, scores;

//Ask for number of students
cout << "How many students are there?" << endl;
cin >> students;

//Loop
for (count = 0; count < students; count++)
{
cout << "What are their names?" << endl;
cin >> names;

cout << "What are their scores?" << endl;
cin >> scores;
}

Я знаю, что в этом коде много ошибок, но моя главная цель — как получить имена и оценки в параллельном массиве. Спасибо!

0

Решение

Вы бы бросили все в цикл while, а затем прервали его, когда пользователь хочет выйти. Но как узнать, когда пользователь хочет выйти? Для чего-то вроде захвата имен и возрастов это может быть, когда пользователь вводит «-1» для имени, которое будет выглядеть так:

std::vector<std::string> names;
std::vector<int> ages;
while(true) {
std::string name;
int age;

std::cin >> name;
if(name == "-1") break;
std::cin >> age;

names.push_back(name);
ages.push_back(age);
}
1

Другие решения

Создайте переменную для хранения ответа от пользователя. Работа в цикле. Просить ввод от пользователя как ответ в каждом цикле. Поставьте условие, чтобы проверить выбор пользователя.
Например:

int x = 1;//to store answer of user
int age;
do{
cout<<"Enter the age";
cin>>age;
//similarly for name

cout<<"You want to do again (1/0)?";
cin>>x;//if user inputs 1 then continues doing thing else breaks
}while(x==1);

Эта программа продолжается до тех пор, пока пользователь не ответит 1 (и разрывы для других значений могут быть 0).

Надеюсь, это то, что вы ищете.

0

По вопросам рекламы [email protected]