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

указатель на структуру - C++

Восстановить пароль Регистрация
 
Мака94
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 31
16.09.2013, 07:08     указатель на структуру #1
по заданию: Описать структуру заповедник, которая содержит информацию о животных, содержащихся в
заповеднике: название, вид, класс, количество особей, место естественного обитания,
информация о занесении в красную книгу. Создать массив таких структур и заполнить его.
Вывести на экран всех животных, занесенных в красную книгу. Все действия со структурой
производить с помощью указателя на нее, напрямую к полям структуры обращаться нельзя.

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
#include <iostream>
 using namespace std;
 
//название, вид класс, количество особей, место естественного пребывания, информация о занесении в красную книгу. 
struct animal
{
    char name[15];
    char klass[10];
    char vid[15];
    int kol;
    char mesto[15];
    bool redBook;
 
};
 
 
 
int main ()
{
    int n;
    cout<<"Vvedite kolichestvo zhivotnih: ";
    cin>>n;
    cout<<"\n";
 
  animal *irr=new animal[n];
  for(int i=0;i<n;i++)
  {
      cout<<"Nazvanie: ";
      cin>>irr[i].name;
      cout<<"Klass osobi: ";
      cin>>irr[i].klass;
      cout<<"Vid osobi: ";
      cin>>irr[i].vid;
      cout<<"Kolichestvo osobey: ";
      cin>>irr[i].kol;
      cout<<"Mesto obitaniya: ";
      cin>>irr[i].mesto;
      cout<<"Zanesen v krasnuyu knigu? 1 - da, 2 - net ";
      int j;
      cin>>j;
      cout<<"\n";
      switch(j)
      {
      case 1 : irr[i].redBook=true;break;
      case 2 : irr[i].redBook=false;break;
      }
  }
 
  for(int k=0;k<n;k++)
  {
      if(irr[k].redBook==true)
      { 
      cout<<"Nazvanir: ";
      cout<<irr[k].name<<'\n';
      cout<<"Klass osobi: ";
      cout<<irr[k].klass<<'\n';
      cout<<"Vid osobi: ";
      cout<<irr[k].vid<<'\n';
      cout<<"Kolichestvo osobey: ";
      cout<<irr[k].kol<<'\n';
      cout<<"Mesto obitaniya: ";
      cout<<irr[k].mesto<<'\n';
      cout<<"\n";
      }
  }
 
    system("pause");
    return 0;
}
Все действия со структурой
производить с помощью указателя на нее, напрямую к полям структуры обращаться нельзя. - не знаю как с этим справиться(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2013, 07:08     указатель на структуру
Посмотрите здесь:

Указатель void на структуру C++
Указатель на структуру C++
C++ указатель на структуру
C++ указатель на структуру
Создать указатель на структуру C++
Создать указатель на структуру C++
C++ Указатель на не объявленную структуру
Указатель на структуру C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
16.09.2013, 08:19     указатель на структуру #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
#include <stdio.h>
#include <stdbool.h>
 
struct Animal
{
    char name[15];
    char class[10];
    char kind[15];
    unsigned count;
    char place[15];
    bool redBook;
};
 
int main()
{
    struct Animal animal[] = {{"qwe", "qwe", "qwe", 10, "qwe", false},
                              {"asd", "asd", "asd", 12, "asd", true},
                              {"zxc", "zxc", "zxc", 14, "zxc", false},
                              {"vcb", "cvb", "vcb", 16, "vbn", true}};
 
 
    size_t size = sizeof(animal) / sizeof(*animal);
 
    struct Animal* ptr = animal;
    
    size_t i;
    
    for (i = 0; i < size; ++i)
    {
        if (ptr->redBook)
        {
            printf("animal: %s\n", ptr->name);
        }
        ptr++;
    }
    
    return 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
#include <stdio.h>
#include <stdbool.h>
 
struct Animal
{
    char name[15];
    char class[10];
    char kind[15];
    unsigned count;
    char place[15];
    bool redBook;
};
 
int main()
{
    struct Animal animal[] = {{"qwe", "qwe", "qwe", 10, "qwe", false},
                              {"asd", "asd", "asd", 12, "asd", true},
                              {"zxc", "zxc", "zxc", 14, "zxc", false},
                              {"vcb", "cvb", "vcb", 16, "vbn", true}};
 
 
    size_t size = sizeof(animal) / sizeof(*animal);
   
    void* ptr = animal;
    
    size_t i;
    
    for (i = 0; i < size; ++i)
    {
        if (*(bool*)(ptr + 59))
        {
            printf("animal: %s\n", (char*)ptr);
        }
        
        ptr += sizeof(*animal);
    }
 
    return 0;
}
Yandex
Объявления
16.09.2013, 08:19     указатель на структуру
Ответ Создать тему
Опции темы

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