Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2021, 18:11   #1
LevMark
Пользователь
 
Регистрация: 28.03.2021
Сообщений: 24
По умолчанию Ошибка передачи массива в структуру.

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

Код:
#include <iostream>
using namespace std;

struct stud
{
    string FIO;
    string adress;
    int marks[];
};

int main()
{
    stud mas[20];
    int n,k;
    k=0;
    cout << "Vvedite kollichestvo studentov "; cin >> n;

    double *sr;
    sr = new double[n];

    for (int i = 0; i < n; i++)
    {
        cout << endl << "Vvedite FIO: "; cin >> mas[i].FIO;
        cout << endl << "Vvedite adress: "; cin >> mas[i].adress;
        cout << endl <<"Vedite chislo predmetov: "; cin>> k;
        for (int j = 0; j < k; j++)
        {
            cout << endl << "Vvedite " << j + 1 << " osenok: "; cin >> mas[i].marks[j];
        }
    }
    for (int i = 0; i < n; i++)
    {
        double sum = 0;
        for (int j = 0; j < k; j++)
        {
            sum += mas[i].marks[j];
        }
        sr[i] = sum / k;
    }

    cout << endl << "Sdali iz Saranska ne nize 4.5: " << endl;
    int p = 0;
    for (int i = 0; i < n; i++)
    {
        if (mas[i].adress == "Saransk" && sr[i] >= 4.5)
        {
            p++;
            cout << mas[i].FIO << endl;
        }
    }
    cout << "Takih " << p << " studentov "<<endl;
    delete[] sr;
    system("pause");
    return 0;
}
У меня вводиться только 1 студент, потом ошибка, каким образом можно сделать, чтобы можно было вводить число студентов по желанию пользователя?

Последний раз редактировалось BDA; 29.05.2021 в 20:04.
LevMark вне форума Ответить с цитированием
Старый 29.05.2021, 20:07   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Нужно массив студентов mas динамически создавать (также как sr), спрашивать количество оценок до ввода данных каждого студента и массив оценок каждого студента тоже создавать динамически.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 29.05.2021, 21:14   #3
LevMark
Пользователь
 
Регистрация: 28.03.2021
Сообщений: 24
По умолчанию

BDA,
int *marks;
...
cout << endl <<"Vedite chislo predmetov: "; cin>> k;
marks= new int[k];
Выдаёт ошибку error: ‘marks’ was not declared in this scope; did you mean ‘mas’?
LevMark вне форума Ответить с цитированием
Старый 30.05.2021, 01:44   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Скорее так:
Код:
struct stud
{
    string FIO;
    string adress;
    int *marks;
};
...
cout << "Vvedite kollichestvo studentov "; cin >> n;
cout << endl << "Vedite chislo predmetov: "; cin>> k;
stud *mas = new stud[n];
for (int i = 0; i < n; i++)
{
    cout << endl << "Vvedite FIO: "; cin >> mas[i].FIO;
    cout << endl << "Vvedite adress: "; cin >> mas[i].adress;
    mas[i].marks = new int[k];
    for (int j = 0; j < k; j++)
    {
        cout << endl << "Vvedite " << j + 1 << " osenku: "; cin >> mas[i].marks[j];
    }
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при передачи двумерного массива в функцию из библиотеки, написанной на СИ (lazarus) ivan.tiran Lazarus, Free Pascal, CodeTyphon 0 19.12.2014 13:19
Составление и отладка программы передачи массива и функции в С++. Алинчик95 Помощь студентам 6 30.03.2014 22:00
Использование нетипизированного указателя для передачи массива. frosich Общие вопросы Delphi 10 20.12.2013 16:50
ошибка в процедуре передачи параметров Federer Помощь студентам 2 18.05.2012 10:22
ошибка при передачи данных массива в процедуру chircov090993 Помощь студентам 0 06.11.2010 20:06