разные массивы в одной функции

0

Я новичок в c++, и мне нужно выбрать функцию, которая просит пользователя ввести значения первого элемента из пяти разных массивов. Например, массив для имени студента, массив для идентификатора ученика и т.д. Вопрос здесь, каков будет параметр этой функции.

Это моя попытка объявить массивы глобальными. Я не знаю, где ошибка.

const int SIZE=1000;
int studN[SIZE]; 
int id[SIZE]; 
string courseName[SIZE];
string courseSec[SIZE]; 
int regNom[SIZE];

void insertNew()
{ 
int index=0;
index++;
cout<<"Please enter the student name:  ";
cin>>studN[index];
cout<<"Please enter the student ID:  ";
cin>>id[index];
cout<<"Please enter the course name:  ";
cin>>courseName[index];
cout<<"Please enter the course section:  ";
cin>>courseSec[index];
cout<<"Please enter the registration number:  ";
cin>>regNom[index];
cout<<" Information stored"<<endl;
}
  • 0
    Для StudN используйте строковый тип данных.
Теги:
arrays
function

3 ответа

0
Лучший ответ

Если я правильно понял, вы хотите написать функцию, которая будет устанавливать значения элементов массивов с заданным индексом. Функция может выглядеть следующим образом

bool Insert( int studN[], int id[], string courseName[], string courseSec[], int regNom, size_t size, size_t pos )
{
    if ( size <= pos ) return false;

    cout << "Please enter the student name:  ";
    cin >> studN[pos];
    // other stuff
    // ,,,

    return true;
}

Но в любом случае было бы лучше определить один массив структуры или класса, который будет содержать соответствующие поля.

  • 0
    Можете ли вы объяснить, что такое size_t, потому что я собираюсь использовать его, я должен объяснить своему учителю, почему я это сделал.
  • 0
    @ user3138845 Очевидно, что нет никакого смысла, если массив будет иметь отрицательный размер. Поэтому обычно для размеров массивов используется какой-то беззнаковый целочисленный тип. size_t определяется как typedef для некоторого целого типа без знака. Например, typedef unsigned int size_t; или typedef unsigned long size_t; Вы можете просто заменить size_t на unsigned int в своем коде или даже использовать тип int. Только вы должны знать, что массивы могут не иметь отрицательных размеров.
Показать ещё 6 комментариев
0

Прежде всего вам понадобится функция main() для запуска программы. Вероятно, вы хотите, чтобы cin/cout был.

Наличие таких переменных, как вы, не оптимально, если вы хотите скрыть их, так что напишите их в главном {} с остальной частью кода, который у вас есть

Затем вы хотите отправить эти параметры, которые вы добавили в другую функцию. подобно

PrintStudents( int* studN, etc....) 
{

}

Обратите внимание, что вам нужно использовать указатели.

  • 0
    Конечно, у меня есть функция main (), где я вызвал эту функцию. проблема в этой функции, я не могу понять ошибку.
0

Поскольку вы объявили массивы как глобальные переменные, вам не нужно предоставлять какие-либо параметры функции.

Однако ваш индекс должен быть инициализирован один раз на 0 вне функции. Это связано с тем, что вы не хотите переписывать значения снова и снова с одним и тем же индексом = 1.

Кроме того, после каждой операции int read вы должны ввести cin.ignore() поскольку символ \n находится во входном буфере, и это мешает дальнейшим cin.ignore() строки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню