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

Сформировать динамический массив из элементов структурного типа - C++

Восстановить пароль Регистрация
 
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
07.06.2013, 19:15     Сформировать динамический массив из элементов структурного типа #1
1.Сформировать динамический массив из элементов структурного типа.
C++
1
2
3
4
5
6
struct реrson
{
char*name;
char *adres;
int age;
};
2.Вывести сформирован массив.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2013, 19:15     Сформировать динамический массив из элементов структурного типа
Посмотрите здесь:

Сформировать динамический массив C++
C++ Сравнение переменных структурного типа
Сформировать динамический массив X C++
динамический массив из элементов структурного типа C++
C++ Динамический массив из элементов структурного типа
Динамический массив элементов произвольного типа C++
C++ Запись элементов массива структурного типа.Из старого массива- в новый
Функция структурного типа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MarVaL
С++ Beginner
 Аватар для MarVaL
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
07.06.2013, 19:45     Сформировать динамический массив из элементов структурного типа #2
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
#include <iostream>
#include <cstring>
 
const int size = 5;
 
struct Person {
  char *name;
  char *surname;
  int age;
};
 
Person* inputPerson();
void printPerson(Person*);
 
int main() {
  Person *persons = inputPerson();
  printPerson(persons);
  for(int i = 0; i < size; ++i) {
    delete[] persons[i].name;
    delete[] persons[i].surname;
  }
  delete[] persons;
  return 0;
}
 
Person* inputPerson() {
  Person *persons = new Person[size];
  int bufSize = 30;
  for(int i = 0; i < size; ++i) {
    char name[bufSize], surname[bufSize];
    std::cin.clear();
    std::cout << "Please enter name of person: ";
    std::cin.getline(name, bufSize);
    std::cout << "Surname: ";
    std::cin.getline(surname, bufSize);
    persons[i].name = new char[strlen(name) + 1];
    strcpy(persons[i].name, name);
    persons[i].surname = new char[strlen(surname) + 1];
    strcpy(persons[i].surname, surname);
    std::cout << "Age: ";
    std::cin >> persons[i].age;
    std::cin.ignore();
  }
  return persons;
}
 
void printPerson(Person *persons) {
  for(int i = 0; i < size; ++i) {
    std::cout << "Person " << i + 1 << std::endl << " Name: " << persons[i].name << std::endl;
    std::cout << "Surname: " << persons[i].surname << std::endl;
    std::cout << "Age: " << persons[i].age << std::endl << std::endl;
  }
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4928 / 2671 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
07.06.2013, 20:18     Сформировать динамический массив из элементов структурного типа #3
выложу сюда дабы в скайпе форматирование убогое
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
#include <iostream>
#include <cstdlib>
#include <cstring>
 
using namespace std;
 
struct person
{
    char name[100];
    char address[100];
    int age;
};
 
void print(const person &m)
{
    cout << "Name = "    << m.name    << "\n"
         << "Address = " << m.address << "\n"
         << "God = "     << m.age     << "\n\n";
}
 
void init(person &m)
{
    cout << "Name: ";
    cin >> m.name;
    cout << "Address: ";
    cin >> m.address;
    cout << "God: ";
    cin >> m.age;
}
 
void myFind(const person *arr, const int size, const char *key)
{
    for (int i=0; i < size; i++)
        if (strcmp(arr[i].name, key) == 0) // если поле name структуры arr[i] совпадает с ключом поиска
            print(arr[i]); // выводим её на экран
}
 
void mySort(person *arr, const int size)
{
    // пузырьковая сортировка. Сортируем по полю name
    for (int i=0; i < size; i++)
        for (int j=size-1; j > i; j--)
            if (strcmp(arr[i].name, arr[j].name) > 0)
            {
                // мегняем местами
                person tmp = arr[i]; // временная переменная
                arr[i] = arr[j];
                arr[j] = tmp;
            }
}
 
 
int main()
{
    const int size = 3;
    person pArr[size];
    // в цикле инициализируем структуры
    for (int i=0; i < size; i++)
        init(pArr[i]);
 
    for (int i=0; i < size; i++)
        print(pArr[i]); // вызываем функцию print, передавая элемент массива pArr[i]
 
    char key[100];
    cout << "Key to find: ";
    cin >> key;
    myFind(pArr, size, key);
 
    cout << "\nSorted:\n";
    mySort(pArr, size);
    for (int i=0; i < size; i++)
        print(pArr[i]); // вызываем функцию print, передавая элемент массива pArr[i]
 
    system("pause"); // пауза
}
Yandex
Объявления
07.06.2013, 20:18     Сформировать динамический массив из элементов структурного типа
Ответ Создать тему
Опции темы

Текущее время: 17:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru