0 / 0 / 1
Регистрация: 10.08.2011
Сообщений: 55
1

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

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

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

______________________________________________________________________
Дана структура с информацией о 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; 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2013, 12:34
Ответы с готовыми решениями:

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг...

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого...

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя.
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между...

Использование функций и шаблонов функций
Люди помогите пожалуйста буду очень благодарна) вобщем вот первая часть лабы Написать...

2
100 / 100 / 47
Регистрация: 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 минут
Еще неравенство в условном операторе функции не в ту сторону стоит). Функция выводит предприятия котрые превысили план...
1
0 / 0 / 1
Регистрация: 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;
}
0
14.01.2013, 13:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2013, 13:57
Помогаю со студенческими работами здесь

Использование функций и шаблонов функций
Составьте программу – формирование цены на молоко. Животновод в начале каждой зимы цену на молоко...

Использование функций, использование break
Здравствуйте. Не знал как назвать тему, боялся что, если назову &quot;КАК ЭТО РАБОТАЕТ?&quot; то её удалят....

Использование функций
кто может напишите пожалуйста код

Использование функций.
1. Определить натуральное число не больше заданного n с наибольшей суммой делителей. Использовать...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru