Форум программистов, компьютерный форум CyberForum.ru

Передача структуры в функцию - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
Klord
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 30
25.12.2011, 16:25     Передача структуры в функцию #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
struct Student
{
    char    Name[255];    /* Фамилия студента */
    int     Group;        /* Номер группы */
    float   Ses;          /* Балл успеваемости */
};
int main(int argc, char* argv[])
{
  /* Объявление и инициализация переменных и констант */
    const    MAX_STUDENTS = 8;      /* Определяет количество студентов */
    Student  Stud1[MAX_STUDENTS];
    Student  stTemp;
    bool     is = false;
    /* Запрашиваем ввод данных с клавиатуры */
    for (int i = 0; i < MAX_STUDENTS; i++)
    {
        printf("VVedite zapis' nomer%d:\n\tIm9: ", i);
        gets(Stud1[i].Name); /*Функция gets читает строку из потока стандартного ввода stdin и запоминает ее в буфере buffer*/
        printf("\tGruppa: ");
        scanf("%d", &Stud1[i].Group);
        printf("\tBall: ");
        scanf("%f", &Stud1[i].Ses);
}
    /* Сортировка массива структур Student по среднему значению балла (по возрастанию) */
    for (i = 0; i < MAX_STUDENTS; i++)
    {
        for (int j = i + 1; j < MAX_STUDENTS; j++)
        {
            if (Stud1[i].Ses > Stud1[j].Ses)
            {
                stTemp = Stud1[i];
                Stud1[i] = Stud1[j];
                Stud1[j] = stTemp;
            }
        }
    }
    /* Вывод на экран фамилий студентов и номеров групп, у которых средний балл больше 4 */
    for (i = 0; i < MAX_STUDENTS; i++)
    {
        if (Stud1[i].Ses > 4)
        {
            printf("\n%s iz gruppi nomer%d", Stud1[i].Name, Stud1[i].Group);
            //При наличие хотя бы одного такого студента выставляем флаг 
            is = true;
        }
    }
    // Если не найдено ни одного студента, удовлетворяющего условиям отбора выводим соответствующее сообщение */
    if (!is) printf("\nSdudents s ballom yspevaemosti > 4 otsutstvut");
    return 0;
}
 
/*Описать структуру с именем STUDENT, содержащую следующие поля:
• Фамилия и инициалы;
• Номер группы;
• Успеваемость;
Написать программу, выполняющую следующие действия:
• Ввод с клавиатуры данных в массив, состоящий из 10 структур типа STUDENT;
записи должны быть упорядочены по возрастанию среднего балла;
• Вывод фамилий и номеров групп тех студентов, чей средний балл больше 4.0.
• Если таких студентов нет, вывести соответствующее сообщение. */

Уважаемые форумчане, нужно передать структуру в функцию. Заранее спасибо.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 //Шаблон передачи
struct Name{
....//opisanie str-ry
};
void function (Name (&)[N]);
int main()
{
Name spisok[N];
function(spisok);
return 0;
}
void function (Name(&)[N]){
...
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 16:25     Передача структуры в функцию
Посмотрите здесь:

Передача в функцию элементов структуры C++
Передача структуры в функцию C++
C++ Передача значения из поля структуры в функцию
Передача структуры в функцию C++
Передача структуры в функцию C++
Передача структуры в функцию C++
Передача в функцию ячейку структуры C++
C++ Передача члена структуры в функцию
C++ Передача структуры в функцию
C++ Передача структуры в функцию
Передача структуры в функцию C++
Передача структуры в функцию C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
25.12.2011, 18:11     Передача структуры в функцию #2
Для неизвестного заранее количества элементов в массиве:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void function(Name names[], int N);
 
int main()
{
    Name st_names[8];
    function(st_names, 8);
}
 
void function(Name names[], int N)
{
// ...
for(int i=0; i<N; ++i)
    names[i].Ses = 0;
// ...
}
Для известного то же самое, но N передавать уже не требуется.
Klord
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 30
26.12.2011, 20:56  [ТС]     Передача структуры в функцию #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#include <iostream.h>
#define N 8
struct Student
{
char Name[255]; 
int Group; 
float Ses; 
};
void vvod(Student (&)[N]);
void sort(Student (&)[N]);
void student(Student (&)[N]);
 
int main()
{
 
Student Stud1[N];
 
 vvod(Stud1);
 sort(Stud1);
 student(Stud1);
 return 0;
}
 
void vvod(Stud (&)[N]){
for (int i = 0; i < N; i++)
{
printf("VVedite zapis' nomer%d:\n\tIm9: ", i);
gets(Stud[i].Name);
printf("\tGruppa: ");
scanf("%d", &Stud[i].Group);
printf("\tBall: ");
scanf("%f", &Stud[i].Ses);
}
}
 
void sort(Stud2(&)[N]){
Student stTemp;
for (i1 = 0; i1 < N; i1++)
{
for (int j = i1+ 1; j < N; j++)
{
if (Stud2[i].Ses > Stud2[j].Ses)
{
stTemp = Stud2[i1];
Stud2[i1] = Stud2[j];
Stud2[j] = stTemp;
}}}}
 
void student(Stud3 (&)[N]){
bool is = false;
 
for (i = 0; i < N; i++)
{
if (Stud3[i].Ses > 4)
{
printf("\n%s iz gruppi nomer%d", Stud3[i].Name, Stud3[i].Group);
 
is = true;
}
}
if (!is) printf("\nSdudents s ballom yspevaemosti > 4 otsutstvut");
}
 
/*--------------------Configuration: 7 - Win32 Debug--------------------
Compiling...
7.cpp
D:\7\7.cpp(25) : error C2065: 'Stud' : undeclared identifier
D:\7\7.cpp(25) : error C2059: syntax error : ')'
D:\7\7.cpp(25) : error C2143: syntax error : missing ';' before '{'
D:\7\7.cpp(25) : error C2447: missing function header (old-style formal list?)
D:\7\7.cpp(37) : error C2065: 'Stud2' : undeclared identifier
D:\7\7.cpp(37) : error C2059: syntax error : ')'
D:\7\7.cpp(37) : error C2143: syntax error : missing ';' before '{'
D:\7\7.cpp(37) : error C2447: missing function header (old-style formal list?)
D:\7\7.cpp(50) : error C2065: 'Stud3' : undeclared identifier
D:\7\7.cpp(50) : error C2059: syntax error : ')'
D:\7\7.cpp(50) : error C2143: syntax error : missing ';' before '{'
D:\7\7.cpp(50) : error C2447: missing function header (old-style formal list?)
Error executing cl.exe.
 
7.obj - 12 error(s), 0 warning(s) */
 
 
Помогите исправить ошибки! Пожалуйста. Очень срочно надо..
Yandex
Объявления
26.12.2011, 20:56     Передача структуры в функцию
Ответ Создать тему

Метки
student, student c++, описать структуру, описать структуру c++, описать структуру student c++, описать структуру student, описать структуру с именем student, структура student, структура student c++, структуры данных, структуры данных c++
Опции темы

Текущее время: 21:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru