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

Написать программу, которая вводит информацию и печатает номер курса на котором наибольший процент мужчин - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как добавить DLL к проекту, чтобы приложение работало на других ПК http://www.cyberforum.ru/cpp-beginners/thread1147416.html
Всем привет. Сделал простенькую программу с использование mfс на VS 2013 pro. У меня на компьютере программа работает идеально, а когда скидываю другому человеку программа перестает работать,...
C++ Найти сумму ряда с точностью Е=10-4 программа готово тока я не могу найти r=an/an+1 Найти сумму ряда с точностью Е=10-4 An= (n!)/(n^n) #include <cstdlib> #include <iostream> #include <math.h> #define E 10e-4 //точность int... http://www.cyberforum.ru/cpp-beginners/thread1147407.html
C++ Задача Коши для системы уравнений (метод Эйлера). Ошибка в решении
Здравствуйте! Необходимо решить систему ОДУ. Исходные данные: E2 = 5; Cb = 2 10^-12; C1 = 10^-6; C2 = 10^-6; i = 10^-12; R = 10^6; Rb = 20;
Ошибка: ссылка на неразрешенный внешний символ C++
Уже час сижу не могу понять в чём дело. Получаю такие ошибки при компиляции: Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall stack<int>::stack<int>(void)"...
C++ Вычислить количество гласных букв в строке http://www.cyberforum.ru/cpp-beginners/thread1147402.html
Изучение обработки строк при помощи указателей Задание: Для ввода всех строк использовать один и тот же символьный массив tmp. Обработку строк производить при помощи указателей внутри выделенного...
C++ Вводится последовательность символов. Признак конца ввода – точка. Посчитать количество символов не являющихся пробелами Порядок выполнения работы 1.Изучите теоретическое обоснование и проанализируйте приведенные выше примеры программ с циклами типа for, while. 2. Составьте программы циклической структуры по... подробнее

Показать сообщение отдельно
PycuBep

Написать программу, которая вводит информацию и печатает номер курса на котором наибольший процент мужчин - C++

13.04.2014, 21:15. Просмотров 447. Ответов 0
Метки (Все метки)

Хелп!
На основе таблицы, содержащей следующую информацию о группе студентов некоторого вуза (фамилия, имя, отчество, пол, возраст, курс) написать программу, которая вводит эту информацию и печатает номер курса, на котором наибольший процент мужчин;

Проблема в нахождении процентного соотношения, программа выводит нулевые значения:
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
#include <conio.h>
#include <locale.h>
#include <iostream>
#include <string>
using namespace std;
 
struct Students
{
    string name;
    string fam;
    string otch;
    char sex;
    int age, kurs;
};
 
void Input(Students s[], int N)
{
 for (int i(0); i < N; i++)                
    {
        cout << "Заполните информацию о " << i+1 << " студенте: " << endl;
 
        cout << "Имя: ";
        cin >> s[i].name;
 
        cout << "Фамилия: ";
        cin >> s[i].fam;
 
        cout << "Отчество: ";
        cin >> s[i].otch;
 
        cout << "Пол(m - мужской, f - женский): ";
        cin >> s[i].sex;
 
        cout << "Возраст: ";
        cin >> s[i].age;
 
        cout << "Курс, на котором обучается студент: ";
        cin >> s[i].kurs;
    
        system("cls");
    }
}
int main()
{
    setlocale(LC_ALL, "Russian");
 
    cout << "Введите количество студентов: ";
    int N;
    cin >> N;
    cout << endl;
 
    Students *s = new Students [N]; 
  
   Input(s, N);
    
    int max = s[0].kurs;
    for (int i(0); i < N; i++)
    {
        if (s[i].kurs > max)   //Находим максимальный курс
        {
            max = s[i].kurs;
        }
    }
 
    int *ppc = new int [max];
     for (int i(0); i <= max; i++)
    {
        ppc[i] = 0;
    }
 
    int *mpc = new int [max];
     for (int i(0); i <= max; i++)
    {
        mpc[i] = 0;
    }
 
    for(int i(1); i <= max; i++)
    {
        for(int j(0); j < N; j++)
        {
            if(s[j].kurs == i) //считается кол-во студентов на курс
            {
                ppc[i]++;
            }
            if((s[j].kurs == i) && s[j].sex == 'm') //параллельно считается кол-во мужчин на курс
            {
                mpc[i]++;
            }
        }
    }
 
    double *pompc = new double [max];
     for (int i(1); i <= max; i++)
    {
        pompc[i] = 0;
    }
 
    for(int i(1); i <= max; i++) //в данном массиве, где номер его элемента соответствует номеру курса, считается процентная составляющая мужчин от числа студентов на курсе
    {
        if(mpc[i] != 0)         
        {
            pompc[i] = ppc[i] % mpc[i] * 100; 
        }
    }
 
    int index = 0;
    double maxpercent = pompc[1];
     for (int i = 1; i < max; i++)
    {
        if (pompc[i] > maxpercent)
        {
            maxpercent = pompc[i];
            index = i;
        }
    }
    
    cout << "Наибольший процент мужчин (" << maxpercent << ") на " << index << " курсе";
    
    getch();                                                                
    return 0;
}
Как мне кажется, вся проблема в данном участке программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for(int i(1); i <= max; i++)
{
        if(mpc[i] != 0)         
        {
            pompc[i] = ppc[i] / mpc[i] * 100; 
        }
    }
 
    int index = 0;
    double maxpercent = pompc[1];
     for (int i = 1; i < max; i++)
    {
        if (pompc[i] > maxpercent)
        {
            maxpercent = pompc[i];
            index = i;
        }
    }
p.s. еще не знаю как освободить динамическую память.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru