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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
Klord
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 30
#1

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

25.12.2011, 16:25. Просмотров 2135. Ответов 2

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]){
...
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 16:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача структуры в функцию (C++):

Передача структуры в функцию - C++
объясните, пожалуйста, что это за передача структуры в некоторые функции программы: void someFunction(NOTE * &amp;Note) ?? Почему нельзя,...

Передача структуры в функцию - C++
Хочу передать массив в функцию. как лучше это сделать? struct a1{ char smA1; }; char b1 = {&quot;sdk&quot;}; void setstrinf(a1...

Передача структуры в функцию - C++
Здравствуйте. Как передать структуру в функцию? void Ekzamen(struct array, int n, int size) { cout &lt;&lt; &quot;Студенты, допущенные...

Передача структуры в функцию - C++
Пишу программу по структурам... Хочу передать в функцию объекты структуры, т.е. zakaz и параметр size(размерность), так, что бы передать...

Передача структуры в функцию - C++
Всем добрый день. Есть программа разбитая на файлы. как объвить, определить и вызвать функцию в которую передать значения структуры ...

Передача структуры в функцию - C++
Добрый вечер. Необходимо обеспечить вывод значении элементов структуры в 10-ной и 16-ной системе счисления через функцию. Следовательно...

2
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 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 передавать уже не требуется.
1
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) */
 
 
Помогите исправить ошибки! Пожалуйста. Очень срочно надо..
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2011, 20:56
Привет! Вот еще темы с ответами:

Передача структуры в функцию - C++
Здравствуйте, объясните пожалуйста, как передать структуру в функцию. Пользовался поиском, но ничего не понял struct syt { ...

Передача структуры в функцию - C++
структура к примеру: struct GamePoint { int x; int y; }; Функция допустим вот такая: void Func (GamPoint val) { /***/

Передача структуры в функцию - C++
Привет, всем! Помогите чайнику как корректно передать структуру в качестве аргумента в функцию, описанной в отдельном файле. грубо...

Передача члена структуры в функцию - C++
Здравствуйте. Столкнулся с проблемой и не могу найти ее решение. есть структура: #ifndef STRUCTSCAN_H #define STRUCTSCAN_H ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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