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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Несложный тест по Си++ (2014) http://www.cyberforum.ru/cpp-beginners/thread1089876.html
Кто шарит в Си++ подскажите пожалуйста:
C++ Необходимо создать двумерный массив с количеством строк равным количеству полученных узлов xml документа. Необходимо создать двумерный массив с количеством строк равным количеству полученных узлов xml документа. Что не правильно в данном коде? const int row_count = node_list->GetCount(); const int... http://www.cyberforum.ru/cpp-beginners/thread1089874.html
C++ Написать главную функцию программы, в которой бы вводилась простая матрица и выводилась обратная ей
Здравствуйте))) Есть код для функции программы, которая вычисляет обратную матрицу методом гаусса. Помогите пожалуйста написать основную главную функцию программы, в которой бы вводилась простая...
C++ Переполнение строки при считывании из файла
Считываю я строки из файла, в котором их 500 тысяч. Если строка начинается на R, то я записываю её в другой файл. Примерно на 312000-й строке мне выдаётся ошибка string subscript is out of range...
C++ Определить,содержит ли заданный массив группы простых элементов, и удалить вторую такую группу. http://www.cyberforum.ru/cpp-beginners/thread1089829.html
Определить,содержит ли заданный массив группы простых элементов.Удалить из массива вторую группу таких элементов. Сначала я так понимаю ищем является ли число простым:затем ищем нахождение группы...
C++ Из заданного множества точек на плоскости выбрать две различные точки так Из заданного множества точек на плоскости выбрать две различные точки так, чтобы количество точек, лежащих по разные стороны от прямой, проходящие через эти две точки, различались наименьшим образом. подробнее

Показать сообщение отдельно
G_
0 / 0 / 0
Регистрация: 23.11.2013
Сообщений: 17

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

05.02.2014, 13:59. Просмотров 1249. Ответов 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
#include <conio.h>
#include <locale.h>
#include <iostream>
#include <string>
using namespace std;
 
struct group
{
    string name;
    string surname;
    string father;
    char sex;
    int age;
    int course;
};
 
int main()
{
    int k=0, max=0, imax=0, i, j, n;
    setlocale(LC_ALL, "Rus");
    cout << "Введите количество студентов в группе: ";
    cin >> n;
    cout << endl;
    group *kit = new group [n]; // Массив структур со всеми описаниями для каждого ученика
    int *fnam = new int [n]; // Массив с количеством совпадений для каждого имени
    for (i=0; i<n; i++)
        fnam[i]=0;
    string *femnames = new string [n]; // Собственно массив с женскими именами, индексы которого будут
    for (i=0; i<n; i++)                // совпадать с индексами количества совпадений (массив выше)
    {
        cout << "Введите имя " << i+1 << " студента: ";
        cin >> kit[i].name;
        cout << "Введите фамилию " << i+1 << " студента: ";
        cin >> kit[i].surname;
        cout << "Введите отчество " << i+1 << " студента: ";
        cin >> kit[i].father;
        cout << "Введите пол " << i+1 << " студента (м или ж): ";     // Ввод данных
        cin >> kit[i].sex;
        cout << "Введите возраст " << i+1 << " студента: ";
        cin >> kit[i].age;
        cout << "Введите номер курса " << i+1 << " студента: ";
        cin >> kit[i].course;
        cout << endl;
        system("cls");
    }
    for (j=0; j<n; j++) // Как бы проходимся по массиву kit с описаниями учеников
    {
        if (kit[j].sex=='ж') // Если особь женского пола, то...
        {
            if (k>0)
            {
                for (i=0; i<k; i++) // Проходимся по массиву с женскими именами
                {
                    if (femnames[i]==kit[j].name) // Если очередное имя девушки из списка совпало с именем девушки в массиве "для девушек"
                        fnam[i]++; // То в массив, считающий совпадения, добавляем единицу
                    else
                    {
                        femnames[k]=kit[j].name; // Иначе, если не совпадает, то записать как новое имя в наш "женский" массив
                        fnam[k]=1; // И счётчику этого имени присвоить единицу
                    }
                }
                k++; // Прибавим "мнимую" размерность массиву с женскими именами
            }
            else
            {
                k=1; // Инициализация массива с женскими именами
                femnames[0]=kit[j].name;
            }
        }
    }
    for (i=0; i<k; i++) // Прочёсываем массив с женскими именами до мнимой размерности k
    {
        if (fnam[i]>max) // Ищем индекс максимального значения
        {
            max=fnam[i];
            imax=i;
        }
    }
    cout << endl << "Наиболее распространённое женское имя: " << femnames[imax] << endl;  // Выводим значение из масива женских имён с индексом
    system("pause");                                                                     // максимального значения из массива с количеством совпадений
    return 0;
}
Проблема:
Программа не выводит никакого значения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.