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

Упорядочить элементы структуры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ пытаюсь написать браузер http://www.cyberforum.ru/cpp-beginners/thread1026122.html
Добрый день.Работаю в Visual C++. Сделал браузер на WebBrowser.Движок IE.Работает.Браузерная строка и 4 кнопки-перейти,обновить,вперед,назад. Но не пойму. 1)все время вылезает -произошла...
C++ вычислить и вывести на экран значение функции вычислить и вывести на экран значение функции F(x) на отрезке с шагом h=0.1 и точностью e. Результат работы программы представить в виде след.таблицы: №, Значение х, значение функции F(x), Кол-во... http://www.cyberforum.ru/cpp-beginners/thread1026119.html
Алгоритм std::set_union C++
Добрый вечер, попалась задача на данный алгоритм,библиотека <algorithm> подключена. Метод класса вызывается вот таким образом, pe.plansUnion(pe2);,где pe, pe2-объекты класса PlanEducation, в каждом...
C++ Сформировать и распечатать квадратную матрицу
Сформировать и распечатать квадратную матрицу А(10,10) следующего вида: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 6 0 0 0 0...
C++ Код на С++ не корректно работает http://www.cyberforum.ru/cpp-beginners/thread1026104.html
Задача: В одномерном массиве A=(a1, а2, ..., аn) все положительные элементы, имеющие четный порядковый номер, переписать в начало массива. #include"stdafx.h" #include"iostream" #include"conio.h"...
C++ Написать программу, которая считывает линейный массив натуральных чисел из файла Пожалуйста помогите написать программу: 1.Написать программу, которая считывает линейный массив натуральных чисел из файла, имя которого вводится с клавиатуры, и выводит на экран те элементы,... подробнее

Показать сообщение отдельно
Alex_Skripa
18 / 18 / 1
Регистрация: 16.09.2013
Сообщений: 126
03.12.2013, 10:53  [ТС]
Спасибо буду пробовать) Только завтра... На сегодня хватит так и голову сломать можно)...
Вопрос про компиляцию в Release закрыт, так как перенес в новый проект и скомпилировалось собако... А вот сортировка (кстати при количестве элементов из 3х шт, сортировка работает по всем полям и по убыванию и по возрастанию) так и не работает (работает только по полю stat) в чем проблема остаётся для меня загадкой)
Все заранее спасибо за Помощь!)

Добавлено через 9 часов 23 минуты
_up

Добавлено через 1 час 14 минут
Итак вот опробованы код:
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <iomanip>
#include <fstream>
 
using namespace std;
 
struct Man
{
    string fio;
    int date;
    double stat,weight;
    char gen;
};
 
void Init(Man **people,int n)
{
    char gent,Mas_Char[30];
    for (int i=0;i<n;i++)
    {
        cin.sync();
        cout <<"\nВведите ФИО: ";
        cin.getline(Mas_Char,30);
        people[i]->fio=Mas_Char;
        cout <<"Введите год рождения: ";
        cin >>people[i]->date;
        cout <<"Введите рост человека: ";
        cin >>people[i]->stat;
        cout <<"Введите вес человека: ";
        cin >>people[i]->weight;
        cout <<"Введите пол человека ""м"" или ""ж"": ";
        label:cin >>gent;
        if ((gent=='м')||(gent=='ж'))
            people[i]->gen=gent;
        else 
        {
            cout <<"Введите ""м"" или ""ж"": ";
            goto label;
        }
    }
}
 
void Print(Man **people,int n)
{
    fstream file;
    file.open("people.txt",ios::app);
    if (file)
    {   
        for (int i=0;i<n;i++)
        {
            file <<"\n"<<"ФИО человека      : "<<people[i]->fio<<"\n";
            file <<"Год рождения      : "<<people[i]->date<<"\n";
            file <<"Рост              : "<<people[i]->stat<<"\n";
            file <<"Вес               : "<<people[i]->weight<<"\n";
            file <<"Пол               : "<<people[i]->gen<<"\n";
        }
                
    }
    else cout <<"Файл не может быть открыт или создан!";
    file.close();
}
 
void Display(Man **people, int n)
{
    for(int i=0;i<n;i++)
        {
            cout <<"\nФИО человека      : "<<people[i]->fio<<"\n";
            cout <<"Год рождения      : "<<people[i]->date<<"\n";
            cout <<"Рост              : "<<people[i]->stat<<"\n";
            cout <<"Вес               : "<<people[i]->weight<<"\n";
            cout <<"Пол               : "<<people[i]->gen<<"\n";
        }
}
 
void Sort(Man **people, int n, int z, int priz)
{
    int k;
    Man* buff;
    switch (priz)
    {
    case (0):{
    for(int i=0;i<n-1;i++)
    {
        k=i;
        for(int j=i+1;j<n;j++)
        {
            if (people[k]->weight > people[j]->weight)
                k=j;
        }
        buff=people[i];
        people[i]=people[k];
        people[k]=buff;
    }
             break;}
    case (1):{
        for(int i=0;i<n-1;i++)
        {
            k=i;
            for(int j=i+1;j<n;j++)
            {
                if (people[k]->stat > people[j]->stat)
                    k=j;
            }
            buff=people[i];
            people[i]=people[k];
            people[k]=buff;
        }
             break;}
    case (2):{
        for(int i=0;i<n-1;i++)
        {
            k=i;
            for(int j=i+1;j<n;j++)
            {
                if (people[k]->date < people[j]->date)
                    k=j;
            }
            buff=people[i];
            people[i]=people[k];
            people[k]=buff;
        }            
             break;}
    }
    if (z==1)
    {
        Man** pep2=new Man*[n];
        for (int i=0;i<n;i++)
            pep2[i]=people[n-i-1];
        delete []people;
        people=pep2;
    }
}
 
int main()
{
    setlocale(LC_ALL,"Russian");
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    int n,poss,poss1,i;
    cout <<"Введите количество человек: ";
    cin >>n;
    Man** people = new Man*[n];
    Man* tmp;
    Init(people,n);
    lab:system("cls");
    cout <<"\nВыберите:";
    cout <<"\n0---------->Вывод на экран";
    cout <<"\n1---------->Вывод в файл";
    cout <<"\n2---------->Сортировка";
    cout <<"\n3---------->Выход!";
    cout <<"\n---->";cin >>poss;
    switch (poss)
    {
    case (0):
        Display(people,n);
        system("pause");
        break;
    case (1):
        Print(people,n);
        break;
    case (2):{
        cout <<"\nВыберите метод сортировки:";
        cout <<"\n0---------->По возростанию";
        cout <<"\n1---------->По убыванию";
        cout <<"\n---->";cin >>poss;
        cout <<"\nВыберите метод сортировки:";
        cout <<"\n0---------->По Возрасту";
        cout <<"\n1---------->По Росту";
        cout <<"\n2---------->По Весу";
        cout <<"\n---->";cin >>poss1;
        Sort(people,n,poss,poss1);
        break;
             }
    case (3):
        exit(0);
        system("pause");
        break;
    }
    goto lab;
    return 0;
}
Стало элегантней согласен) Но вот только где -то тут есть косяк работы с указателями...
Компилятор дает ошибку сражу же на этой строке:
C++
1
people[i]->fio=Mas_Char;
Ошибка1:
Необработанное исключение в "0x00067246" в "Lab_Rab11_01.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcdcdcde5".
указывает сюда:
_Elem *_Myptr()
{ // determine current pointer to buffer for mutable string
return (this->_BUF_SIZE <= this->_Myres ? this->_Bx._Ptr
: this->_Bx._Buf);
}
из библиотеки xstring
С этими ошибками было бы тоже хорошо разобраться...

Добавлено через 2 минуты
Законспектировал ввод ФИО думал там ошибка типов или что нить в этом роде:
Легче не стало :
Необработанное исключение в "0x55132258 (msvcp100d.dll)" в "Lab_Rab11_01.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcdcded".
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru