1

Тема: Допоможіть(С++(структури))

ось все завдання

Прихований текст
Опишіть структуру Student, що містить наступні поля: name - прізвище та ініціали; group - номер групи; ratings - оцінки(статичний масив з п'яти елементів). Створіть статичний масив з десяти студентів. Реалізуйте такі можливості:
Введення з клавіатури даних студента.
Вивід даних про студента.
Вивід інформації про всіх студентів, середній бал яких вище 7(якщо таких немає, вивести відповідне повідомлення).
Вивід інформації про всіх студентів, які мають хоча б одну оцінку 2.
Вивід інформації про найуспішнішого студента.

ось завдання яке виконую

Прихований текст
Введення з клавіатури даних студента.

ось весь код

Прихований текст

#include <iostream>
using namespace std;
struct Student {
    char* name[100];
    int group;
    int* ratings[5];
};
void set(Student&ar[], int cho);
void main() {
    int const n = 10;
    Student* ar[n];
    int cho;
    cin >> cho;
    set(ar[cho], cho);
    system("pause");
}
void set(Student&ar[], int cho) {
    gets_s(ar[cho].name);
    (sin >> (ar[cho].group)).get();
    for (int i = 0; i < 5; i++) {
        (cin >> ar[cho].ratings[i]).get();
    }
}

ось код помилки

Прихований текст

void set(Student&ar[], int cho) {
    gets_s(ar[cho].name);
    (sin >> (ar[cho].group)).get();
    for (int i = 0; i < 5; i++) {
        (cin >> ar[cho].ratings[i]).get();
    }
}

помилки
ar: неприпустимий масив посилань ряд8
"Void set (Student * [], int)": неможливо перетворити аргумент 1 з "Student *" в "Student * []" ряд14
бінарний "[": "Student" не визначає цей оператор або перетворення до типу прийнятно до вбудованого оператору ряд 18
функція не приймає 1 аргументів ряд18
бінарний "[": "Student" не визначає цей оператор або перетворення до типу прийнятно до вбудованого оператору ряд18
бінарний "[": "Student" не визначає цей оператор або перетворення до типу прийнятно до вбудованого оператору ряд 18
(остання помилка 2 рази)

2

Re: Допоможіть(С++(структури))

Розберіться, що у вас якого типу. Раджу, якщо не виходить з посиланнями (&), використовувати виключно вказівники (*). Що саме ви передаєте в функцію set? Посилання на масив Student-ів? А в main у вас що -  Student* ar[n]; - масив вказівників на Student-ів?

Подякували: Parsifal1

3

Re: Допоможіть(С++(структури))

у функцію сет я передаю 1 студент з масиву студентів(ну мав би передавати)

4

Re: Допоможіть(С++(структури))

Почніть з того, як ви визначаєте ar в main. Це має бути масив студентів?

Подякували: Parsifal1

5

Re: Допоможіть(С++(структури))

так

6

Re: Допоможіть(С++(структури))

Ну а як проголошується масив?

Подякували: Parsifal1

7

Re: Допоможіть(С++(структури))

так

Прихований текст

#include <iostream>
using namespace std;
struct Student {
    char* name[100];
    int group;
    int* ratings[5];
};
void set(Student&ar[], int cho);
void main() {
    int const n = 10;
    Student* ar[n];
    int cho;
    cin >> cho;
    set(ar[cho], cho);
    system("pause");
}
void set(Student&ar[], int cho) {
    gets_s(ar[cho].name, cho);
    (sin >> (ar[cho].group)).get();
    for (int i = 0; i < 5; i++) {
        (cin >> ar[cho].ratings[i]).get();
    }
}

помилки тільки тут

void set(Student&ar[], int cho) {
void set(Student&ar[], int cho);

8

Re: Допоможіть(С++(структури))

ось 2 помилки
ar: неприпустимий масив посилань

9 Востаннє редагувалося koala (31.10.2018 16:02:40)

Re: Допоможіть(С++(структури))

Student ar[n];
...
void set(Student ar[]...
Подякували: Parsifal1

10

Re: Допоможіть(С++(структури))

koala написав:
Student ar[n];

помилки залишились і нова появилась
"void set (Student * [], int)": неможливо перетворити аргумент 1 з "Student" в "Student * []"
в цьому рядку

set(ar[cho], cho);

11 Востаннє редагувалося Parsifal (31.10.2018 16:09:40)

Re: Допоможіть(С++(структури))

"void set (Student [], int)": неможливо перетворити аргумент 1 з "Student" в "Student []" ряд 14
"char * gets_s (char *, rsize_t)": неможливо перетворити аргумент 1 з "char * [100]" в "char *" ряд 18
невідповідність в списку формальних параметрів ряд 19
бінарний ">>": не знайдений оператор, який приймає правий операнд типу "int *" (або прийнятне перетворення відсутній) ряд 21
при  коді

#include <iostream>
using namespace std;
struct Student {
    char* name[100];
    int group;
    int* ratings[5];
};
void set(Student ar[], int cho);
void main() {
    int const n = 10;
    Student ar[n];
    int cho;
    cin >> cho;
    set(ar[cho], cho);
    system("pause");
}
void set(Student ar[], int cho) {
    gets_s(ar[cho].name, cho);
    (sin >> (ar[cho].group)).get();
    for (int i = 0; i < 5; i++) {
        (cin >> ar[cho].ratings[i]).get();
    }
}

12

Re: Допоможіть(С++(структури))

Так, давайте зупинимося і розберемося, що ви взагалі хочете робити в set. Ви туди передаєте або вказівник на одного студента, або вказівник на весь масив та індекс потрібного студента. Який варіант ви хочете реалізовувати?

Подякували: Parsifal1

13 Востаннє редагувалося Parsifal (31.10.2018 16:14:38)

Re: Допоможіть(С++(структури))

вказівник на одного студента але не тільки першого а щоб був вибір

14

Re: Допоможіть(С++(структури))

Вибір був у кого - у самої функції чи у тієї, що її викликає?

void set(Student *stud)
{
  ...
  cin>>stud->group;
  ...
}

...
set(&ar[3]);//вказівник на 3-й елемент в масиві
Так нормально?

Подякували: Parsifal1

15

Re: Допоможіть(С++(структури))

Дякую Коало

16

Re: Допоможіть(С++(структури))

Допоможіть будь ласка !!!
Знайти  спільні  елементи  декількох  прямокутних  матриць  дійсних  чисел,  які  є
параметрами функції зі змінною кількістю аргументів.
Народ допоможіть. Проблема саме з передачею матриць як параметрів функції зі змінним числом параметрів.

17

Re: Допоможіть(С++(структури))

DR_Ooo_N, створіть окрему тему і ОБОВ'ЯЗКОВО викладіть туди свої напрацювання.