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

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

Войти
Регистрация
Восстановить пароль
 
Денис96
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 55
#1

Использование функций - C++

14.01.2013, 12:34. Просмотров 247. Ответов 2
Метки нет (Все метки)

Доброго времени суток, уважаемые форумчане.
Будьте добры, помогите, пожалуйста, решить задачу.

______________________________________________________________________
Дана структура с информацией о 12-ти заводах, в которой есть такие поля: "Наименование", "Площадь", "Плановый обьем продаж", "Фактический обьем продаж", "Комментарии". Нужно написать функцию, которая выводит заводы, которые не выполнили план.
Объясните, что у меня не так. Заранее простите за корявый код.

______________________________________________________________________
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
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
struct Plants
{
    char* name; 
    int square; 
    int vplan;
    int vfact;
    char* com;
};
int func(bool found);
int main()
{
    setlocale (LC_ALL, "Russian");
    Plants f[11];
    int k=0;
    f[0].name = "MotorSICH";
    f[0].square = 158;
    f[0].vplan = 950;
    f[0].vfact = 1020;
    f[0].com="not bad";
 
    f[1].name = "Ferro";
    f[1].square = 220;
    f[1].vplan = 1000;
    f[1].vfact = 950;
    f[1].com="not so good";
 
    f[2].name = "Ferro1";
    f[2].square = 100;
    f[2].vplan = 500;
    f[2].vfact = 600;
    f[2].com = "good";
 
    f[3].name = "Toyota";
    f[3].square = 2000;
    f[3].vplan = 9000;
    f[3].vfact = 11500;
    f[3].com = "awesome";
 
    f[4].name = "Amazon";
    f[4].square = 500;
    f[4].vplan = 500;
    f[4].vfact = 400;
    f[4].com = "not very good";
 
    f[5].name = "Obolon";
    f[5].square = 300;
    f[5].vplan = 800;
    f[5].vfact = 790;
    f[5].com = "so close";
 
    f[6].name = "Sarmat";
    f[6].square = 400;
    f[6].vplan = 1000;
    f[6].vfact = 1000;
    f[6].com = "normally";
 
    f[7].name = "Marga";
    f[7].square = 100;
    f[7].vplan = 500;
    f[7].vfact = 300;
    f[7].com = "so bad";
 
    f[8].name = "Scallop";
    f[8].square = 200;
    f[8].vplan = 100;
    f[8].vfact = 100 ;
    f[8].com = "normally";
 
    f[9].name = "Pineapple";
    f[9].square = 350;
    f[9].vplan = 1000;
    f[9].vfact = 1025;
    f[9].com = "good";
 
    f[10].name = "Mushel";
    f[10].square = 1000;
    f[10].vplan = 150;
    f[10].vfact = 165; 
    f[10].com = "great";
 
    f[11].name = "Walno";
    f[11].square = 250;
    f[11].vplan = 1000;
    f[11].vfact = 1015;
    f[11].com = "not bad";
    func(found);
    getch();
    return 0;
}
 
 
int func(bool found)
{
    struct Plants f[11];
    for (int i=0; i<=11; i++) 
    {
        if (f[i].vplan<f[i].vfact) 
        {
            cout << endl << "Name: " << f[i].name << "(plan="<<f[i].vplan<<"; fact="<<f[i].vfact<<")"<<endl; 
            bool found = true;
        }
    }
    return found; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 12:34     Использование функций
Посмотрите здесь:

Использование функций (С++) - C++
1)Написать функцию, возвращающую абсолютную величину числа. 2)Написать функцию, меняющую местами 2 переменные.

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

Использование функций. - C++
Помогите пожалуйста решить задачи. 1. Составить программу для нахождения максимальных значений среди элементов линейных таблиц А и В....

Использование функций в C++ - C++
Нужно вычислить значение величины, содержащей несколько однотипных сумм. Для вычисления сумм написать функцию пользователя с передачей...

Использование функций - C++
Здравствуйте! Помогите начинающему, который изучает тему &quot;функции&quot;. Надо инициализировать массив и вывести его в консольное окно. Но в этом...

Использование функций - C++
Даны три действительных числа x, y, z. Получить A= arccos((x^2+y^2-z^2)/(2xy)) - arccos(z^2*y/(x+z*y)) где arccos(a) = arctg...

Использование функций - C++
Даны действительный числа a,b,c. Получить: (u+v2,3.14), где u=min(a,b), v=min(ab,a+b). Прошу любой помощи(будь то хороший сайт где я...

Использование функций! - C++
Задать значения целочисленным элементам матриц A = {aij}, B = {bij}, где i = 0, 1, 2,..., 5; j = 0, 1, 2, 3 и вычислить ...

Использование функций - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; void drill(); int count; // count and num_right are global int...

Использование функций - C++
Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы.

Использование функций - C++
Всем доброго вечера Требуется помощь в решение задач по данной теме ибо я нахожусь в полном ступоре С точки зрения математики все...

Использование функций - C++
Здравствуйте. Помогите решить нижеследующую задачу. В данный момент нужно переделать данную задачу с использованием функций. Целый день...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
14.01.2013, 13:48     Использование функций #2
Строка 18 вашей программы, там вы выделяете под 11 предприятий, а сами инициализируете 12, программа сыпется после завершения, поскольку вы в неинициализированную память пишите. надо под 12 выделять там. 0,1,2,...,11 всего 12 эл-тов. Что касается функции. То что вы объявили структуру тем же именем, не означает что будет обращение к структуре в мейне. Там память заного будет выделена. Поэтому нужно передавать указатель на вашу структуру(на память где расположены данные). Вот поправил немного ваш код:
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
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
struct Plants
{
    char * name; 
    int square; 
    int vplan;
    int vfact;
    char * com;
};
void func(Plants * f)
{
    bool found;
    for (int i=0; i<=11; i++) 
    {
        if (f[i].vplan<f[i].vfact) 
        {
            cout << endl << "Name: " << f[i].name << "(plan="<<f[i].vplan<<"; fact="<<f[i].vfact<<")"<<endl; 
        }
    }
}
int main()
{
    setlocale (LC_ALL, "Russian");
    Plants f[12];
    f[0].name = "MotorSICH";
    f[0].square = 158;
    f[0].vplan = 950;
    f[0].vfact = 1020;
    f[0].com="not bad";
 
    f[1].name = "Ferro";
    f[1].square = 220;
    f[1].vplan = 1000;
    f[1].vfact = 950;
    f[1].com="not so good";
 
    f[2].name = "Ferro1";
    f[2].square = 100;
    f[2].vplan = 500;
    f[2].vfact = 600;
    f[2].com = "good";
 
    f[3].name = "Toyota";
    f[3].square = 2000;
    f[3].vplan = 9000;
    f[3].vfact = 11500;
    f[3].com = "awesome";
 
    f[4].name = "Amazon";
    f[4].square = 500;
    f[4].vplan = 500;
    f[4].vfact = 400;
    f[4].com = "not very good";
 
    f[5].name = "Obolon";
    f[5].square = 300;
    f[5].vplan = 800;
    f[5].vfact = 790;
    f[5].com = "so close";
 
    f[6].name = "Sarmat";
    f[6].square = 400;
    f[6].vplan = 1000;
    f[6].vfact = 1000;
    f[6].com = "normally";
 
    f[7].name = "Marga";
    f[7].square = 100;
    f[7].vplan = 500;
    f[7].vfact = 300;
    f[7].com = "so bad";
 
    f[8].name = "Scallop";
    f[8].square = 200;
    f[8].vplan = 100;
    f[8].vfact = 100 ;
    f[8].com = "normally";
 
    f[9].name = "Pineapple";
    f[9].square = 350;
    f[9].vplan = 1000;
    f[9].vfact = 1025;
    f[9].com = "good";
 
    f[10].name = "Mushel";
    f[10].square = 1000;
    f[10].vplan = 150;
    f[10].vfact = 165; 
    f[10].com = "great";
 
    f[11].name = "Walno";
    f[11].square = 250;
    f[11].vplan = 1000;
    f[11].vfact = 1015;
    f[11].com = "not bad";
    func(f);
    getchar();
    return 0;
}
Добавлено через 6 минут
Еще неравенство в условном операторе функции не в ту сторону стоит). Функция выводит предприятия котрые превысили план...
Денис96
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 55
14.01.2013, 13:57  [ТС]     Использование функций #3
Спасибо, я уже все сделал, все вышло, но только в 13 строке я передал в функцию сам массив, а не указатель на него, и все равно заработало.
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
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
struct Plants
{
    char* name; 
    int square; 
    int vplan;
    int vfact;
    char* com;
};
 
    void func(Plants f[12])
    {
        for(int i=0;i<12;i++)
        {
            if (f[i].vplan>f[i].vfact) 
            {
                cout << endl << "Name: " << f[i].name << "(plan="<< f[i].vplan <<"; fact="<< f[i].vfact <<")"<<endl;
            }
        } 
    }
int main()
{
    setlocale (LC_ALL, "Russian");
    Plants f[12];
    
    f[0].name = "MotorSICH";
    f[0].square = 158;
    f[0].vplan = 950;
    f[0].vfact = 1020;
    f[0].com="not bad";
 
    f[1].name = "Ferro";
    f[1].square = 220;
    f[1].vplan = 1000;
    f[1].vfact = 950;
    f[1].com="not so good";
 
    f[2].name = "Ferro1";
    f[2].square = 100;
    f[2].vplan = 500;
    f[2].vfact = 600;
    f[2].com = "good";
 
    f[3].name = "Toyota";
    f[3].square = 2000;
    f[3].vplan = 9000;
    f[3].vfact = 11500;
    f[3].com = "awesome";
 
    f[4].name = "Amazon";
    f[4].square = 500;
    f[4].vplan = 500;
    f[4].vfact = 400;
    f[4].com = "not very good";
 
    f[5].name = "Obolon";
    f[5].square = 300;
    f[5].vplan = 800;
    f[5].vfact = 790;
    f[5].com = "so close";
 
    f[6].name = "Sarmat";
    f[6].square = 400;
    f[6].vplan = 1000;
    f[6].vfact = 1000;
    f[6].com = "normally";
 
    f[7].name = "Marga";
    f[7].square = 100;
    f[7].vplan = 500;
    f[7].vfact = 300;
    f[7].com = "so bad";
 
    f[8].name = "Scallop";
    f[8].square = 200;
    f[8].vplan = 100;
    f[8].vfact = 100 ;
    f[8].com = "normally";
 
    f[9].name = "Pineapple";
    f[9].square = 350;
    f[9].vplan = 1000;
    f[9].vfact = 1025;
    f[9].com = "good";
 
    f[10].name = "Mushel";
    f[10].square = 1000;
    f[10].vplan = 150;
    f[10].vfact = 165; 
    f[10].com = "great";
 
    f[11].name = "Walno";
    f[11].square = 250;
    f[11].vplan = 1000;
    f[11].vfact = 1015;
    f[11].com = "not bad";
    func(f);
    getch();
    return 0;
}
Yandex
Объявления
14.01.2013, 13:57     Использование функций
Ответ Создать тему
Опции темы

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