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

Массив указателей на функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объясните функцию? http://www.cyberforum.ru/cpp-beginners/thread1029557.html
Нужно объяснить и написать вызов функции. Функция связана со строками, но что делает не пойму. int F(char *p){ int n; if (*p=='\0') return 0; if (*p!=' ') n=1; else n=0; for (p++; *p!='\0'; p++) if (p!=' '&&p==' ') n++;
C++ Можно ли строку получить из другой строки путем вычеркивания некоторых символов? Помогите, пожалуйста, решить задачку. даны две строки st1 и st2 . выяснить, можно ли строку st2 получить из строки st1 путем вычеркивания некоторых символов http://www.cyberforum.ru/cpp-beginners/thread1029551.html
Реализовать класс Person (персона) C++
в общем, утопающий студент просит о помощи, потому как сам уже себя не успеет спасти. нужно к понедельнику сдать 5 лабораторных на с++ вот задания: 2.Реализовать класс Person (персона) – инкапсулирует персональные данные о человеке (фамилию, имя, отчество и дату рождения типа Date). Для этого класса реализовать конструктор, позволяющий записать данные в объект и метод вывода персоны на экран....
C++ Выделить нечетные слова во всех предложениях строки
полностью задача звучит так:ввести текст, состоящий из нескольких предложений. Написать программу, которая определяет в первом предложении количество слов, длина которых меньше заданного k, и выводит эти слова, а также выводит все нечетные слова в каждом предложении. С первой частью задачи проблем не возникло, а вот нечетные слова не знаю как выделить параллельно тем более с сортировкой по...
C++ разработать программу сортировки одномерных массивов http://www.cyberforum.ru/cpp-beginners/thread1029512.html
1: создать и отсортировать одномерный массив используя алгоритм сортировки выбором 2: создать и отсортировать одномерный массив используя алгоритм сортировки вставкой 3: создать и отсортировать одномерный массив используя алгоритм сортировки обменом 4: создать и отсортировать одномерный массив используя алгоритм сортировки "пузырь"
C++ Шаблоны и дружественные функции Объявил в шаблонном классе дружественную функцию == и реализовал вне класса в том же файле. Вся проблема в том, что компилятор ошибок не выдает, зато при попытке использовать функцию где бы то ни было, появляется ошибка линкови о невозможности использовать эту функцию. Все ли правильно в объявлении? template<typename T> class TRational{ ... friend bool operator == (const TRational<T>& lObj,... подробнее

Показать сообщение отдельно
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
11.12.2013, 13:26  [ТС]     Массив указателей на функцию
Код программы к заданию:
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include<stdio.h>
#include<iostream>
#define GRADES 5
#define STUDENTS 3
 
using namespace std;
 
int min ( const int grades[][GRADES], int pupils, int tests);
int max ( const int grades[][GRADES], int pupils, int tests);
double average ( const int setOfGrades[], int tests);
void printArray ( const int grades[][GRADES], int pupils, int tests);
int quit (int)
 
 
 
void main()
{
    void(*F[5])(int)={printArray, min, max, average, quit}; // объявление массива
    //указателей *F[5] на функции и инициализация его именами функций
 
int choice;
 
cout << "0  Elements of array is " << endl;
cout << "1  Minimum " << endl;
cout << "2  Maximum " << endl;
cout << "3  Averages grades " << endl;
cout << "4  Quit " << endl;
cin >> choice;
 
while( choice >= 0 && choice < 5)
{ 
    (*F[choice])(choice); // вызов функции при помощи разыменования
 // указателя на функцию. Указатель на функцию выбирается по индексу choice
 // вызванной функции в качестве аргумента передается переменная choice
 
    cout << "0  Elements of array is " << endl;
    cout << "1  Minimum " << endl;
    cout << "2  Maximum " << endl;
    cout << "3  Averages grades " << endl;
    cout << "4  Quit " << endl;
    cin >> choice;
}
 
cout << "Output value 5" << endl;
 
 
}
 
 
void printArray(int printArray)
{
    int n[3] = {45, 87, 93};
    int i;
 
    cout << "Element" << "\t  Value" << endl;
 
    //Вывод содержимого массива
    cout.setf (ios::right);
 
    for (i = 0; i < 3; i++) {
        cout.width (4);
        cout << i;
        cout.width (10);
        cout << n[i] << endl; }
        
}
 
 
 //определить-вывести наибольшую и наименьшею оценку
    cout << "\n\nminimum grade: ";
    cout << min ( studentGrades, STUDENTS, GRADES ) << endl; 
    cout << "maximum grade: ";
    cout << max ( studentGrades, STUDENTS, GRADES ) << endl;
 
 
 // вычисление минимальной оценки
int min (const int grades[][GRADES], int pupils, int tests)
{
    int i; //счетчик студентов
    int j; //счетчик экзаменов
    int lowGrade = 100; //инициализировать максимумом
 
    for ( i =0; i < pupils; i++ ) { //цикл по строкам оценок
        for ( j = 0; j < tests; j++ ) { //цикл по столбцам оценок
 
            if ( grades [i][j] < lowGrade) {
                lowGrade = grades [i][j]; }
        }
    }
    return lowGrade; 
}
 
// вычисление маесимальной оценки
void max(int max)
{
    int i; //счетчик студентов
    int j; //счетчик экзаменов
    int highGrade = 0; //инициализировать минимумом
 
    for ( i =0; i < pupils; i++ ) { //цикл по строкам оценок
        for ( j = 0; j < tests; j++ ) { //цикл по столбцам оценок
 
            if ( grades [i][j] > highGrade) {
                highGrade = grades [i][j]; }
        }
    }
    return highGrade; 
}
 
 
//вычислить-вывести среднюю оценку для каждого студента
 
    for ( student = 0; student < STUDENTS; student++ ) {
        cout << "The average grade for student ";
        cout << student << "is ";
        cout << average ( studentGrades [student], GRADES) << endl;
    }
 
 
//Определение средней оценки студента 
double average ( const int setOfGrades[], int tests)
{
    int i; //счетчик оценок
    int total = 0; //сумма оценок 
 
    for ( i = 0; i < tests; i++ ) { //суммирование оценок студента 
        total += setOfGrades[i]; }
    return (double) total / tests;
}
 
// выход из программы
void quit(int quit)
{ 
return 0;   
}
Выдает ошибку в строке

C++
1
void main()
syntax error : missing ';' before identifier 'main'. Скажите пожалуйста, как ее исправить, чтоб работало? И как дописать последнюю функцию quit, чтобы осуществлялся выход из программы?
 
Текущее время: 22:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru