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

Русские символы при выводе массива структуры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка матрицы методом пузырька http://www.cyberforum.ru/cpp-beginners/thread1175060.html
Чтобы не пересказывать, просто скопирую условие задачи: "Строки вещественной матрицы упорядочить по возрастанию ее последнего столбца и в качестве вектора Х принять главную диагональ преобразованной...
C++ Отобразить главную и побочную диагонали симметрично относительно горизонтальной оси Заполнить матрицу случайными числами. Отобразить главную и побочную диагонали симметрично относительно горизонтальной оси. http://www.cyberforum.ru/cpp-beginners/thread1175056.html
Линейный список и функции обработки C++
Написать программу с функциями, которая: а)подсчитывает количество вхождений элемента C в список M ; б)удаляет со списка M все вхождения элемента C; в)печатает в обратном порядке элементы...
C++ Необработанное исключение в "0x776315de" в "c++1.exe": 0xC0000005: Нарушение прав доступа при записи "0x40e000
Здравствуйте. Только начал работать с динамическим массивом, но не могу понять почему появляется эта ошибка. Работаю с библиотекой sfml. Пришлось самому реализовывать функцию ввода через события...
C++ Стеки, функции добавления и удаления элементов http://www.cyberforum.ru/cpp-beginners/thread1175045.html
Программа на стеки выводит на экран 9876543210 ..помогите сделать так, чтобы можно было вводить вручную, удалять элементы из стека, добавлять,и в случае если эллементов не будет, высвечивалась...
C++ Ввести строку,переделать последовательности цифровых символов в числа и найти их сумму помогите пожалуйста,новичок в программировании,хочу решить эту задачу,спасибо заранее) ввести ряд,переделать последовательности цифровых символов на нем на числа и найти их сумму подробнее

Показать сообщение отдельно
GBool
2 / 2 / 0
Регистрация: 13.05.2014
Сообщений: 8
18.05.2014, 17:22
Цитата Сообщение от zss Посмотреть сообщение
Надо убрать пробел между L и строкой
Убрал, но ничего не изменилось..
Вот весь листинг.
Кликните здесь для просмотра всего текста
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
136
137
138
139
140
// lab.cpp
 
#include <iostream>
#include <cstdlib>          // для функции system
#include <iomanip>          // для функций отступов setw
#include <clocale>          // для функций настройки локали
#include <windows.h>
//#include <stdio.h>        // _flushall
 
 
using namespace std;
///////////////////////////////////////////////////////////
struct workers
{
    char name [15];         // имя
    char lastname [15];     // фамилия
    int age;                // возраст
    int growth;             // рост
};
///////////////////////////////////////////////////////////
void InputMembers(workers *lrh, int len);
void ShowMembers(workers *lrh, int len);
void SortByGrowth(workers *lrh, int len);
void NameOfHigh(workers *lrh, int len);
void SameGrowth (workers *lrh, int len);
///////////////////////////////////////////////////////////
void InputMembers(workers *lrh, int len)
{
    for(int i = 0; i < len; ++i)
    {
        wcout <<L"Введите данные для "<<i+1<<"-го сотрудника\n";
        wcout << setw(9) << setiosflags(ios::left) << "Имя:";
        //_flushall(); cin.getline(lrh[i].name, 15);
        cin >> lrh[i].name;
        wcout << setw(9) << "Фамилия:"; cin >> lrh[i].lastname;
        wcout << setw(9) << "Возраст:"; cin >> lrh[i].age;
        wcout << setw(9) << "Рост:"; cin >> lrh[i].growth;
        cout << endl;
    }
}
void ShowMembers(workers *lrh, int len)
{
    cout << setw(3) << setiosflags(ios::left) << "№" << setw(12)
    << "Фамилия" << setw(12) << "Имя" << setw(10) << "Возраст"
    << setw(5) << "Рост" << endl;
    cout << "------------------------------------------\n";
    for(int i = 0; i < len; ++i)
    {
        cout << setw(3) << i+1 << setw(12) << lrh[i].lastname
        << setw(12) << lrh[i].name << setw(10) << lrh[i].age << setw(5)
        << lrh[i].growth << endl;
    }
    cout << "------------------------------------------\n";
}
void SortByGrowth(workers *lrh, int len)
{
    bool flag = false;
    int num = 0;
    float tmp = 0;
    for(int i = 0; i < len; ++i)
    {
        if( lrh[i].age >= 18 && lrh[i].age <=20)
        {
            flag = true;
            num++;
            tmp += lrh[i].growth;
        }
    }
    if(num != 0)
    cout << "\nСредний рост сотрудников в возрасте от 18 до 20 лет: "
    << (tmp / num) << " см." << endl;
    else
        cout << "\nВ списке нет сотрудниеов в возрасте от 18 до 20 лет."
        << endl;
}
void NameOfHigh(workers *lrh, int len)
{
    int tmp = 0;
    workers worker;         // объявление структурной переменной
    for(int i = 0; i < len; ++i)
    {
        if(lrh[i].growth > tmp)
        {
            worker = lrh[i];
        }
    }
    cout << worker.name << " самый высокий работник. Его рост "
    << worker.growth << " см" << endl;
}
void SameGrowth(workers *lrh, int len)
{
    workers worker;
    int tmp =0;
    for( int i=0; i < len; ++i)
    {
        for(int j=0; j < i; j++)
            if(lrh[i].growth == lrh[j].growth)
            tmp++;
        if(tmp == 0)
            for(int j=i+1; j < len; j++)
            if(lrh[i].growth == lrh[j].growth)
            tmp++;
        if(tmp == 0)
            cout << "Работников с одинаковым ростом в списке нет.\n";
        else
        {
            cout << "У следующих работников одинаковый рост:\n";
            cout << lrh[i].name << endl;
        }
    }
}
const int col = 4;          // количество работников
///////////////////////////////////////////////////////////
int main()
{
    setlocale(LC_CTYPE, ".866");
    //setlocale(LC_ALL, "Russian");
    //SetConsoleCP(1251);
    //SetConsoleOutputCP(1251);
 
    workers Sheet[col];         // массив работников
    wcout <<L"\n1. Создание списка сотрудников:\n" << endl;
    InputMembers(Sheet, col);
    cout << endl;
    wcout <<L "\n2. Список всех сотрудников:\n" << endl;
    ShowMembers(Sheet, col);
    cout << endl;
    wcout <<L "\n3. Вывод среднего роста сотрудников, которые ";
    cout << "находятся в возрасте от 18 до 20 лет:\n";
    SortByGrowth(Sheet, col);
    cout << endl;
    wcout <<L "\n4. Определение имени самого высокого сотрудника.\n" << endl;
    NameOfHigh(Sheet, col);
    cout << endl;
    wcout <<L "\n5. Определение сотрудников с одинаковым ростом.\n" << endl;
    SameGrowth(Sheet, col);
    cout << endl;
    system("pause");
    return 0;
}


Не хочу показаться наглецом, но моет взглянете так же на последнюю функцию. Запутался я в циклах и условиях. А тему создать не могу отдельную.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.