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

указатели и структура!Программа написана! - C++

Восстановить пароль Регистрация
 
pokat
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 5
21.12.2011, 20:28     указатели и структура!Программа написана! #1
здравствуйте, программа рабочая, ничего исправлять не надо!Помогите пожалуйста разобраться мне с указателем!!!

C++
1
2
3
4
5
6
7
8
9
// описание структуры
#include<iostream.h>
#include<string.h>
typedef struct 
{
    char sername[20];
    char name[10];
    char zna[10];
    int data[3];} znak;
Скажите пожалуйста, какой будет тип возвращаемого результата в данной функции.
и обьясните пожалуйста принцип действия!
я понимаю, что в указателе хранится адрес переменной, куда этот адрес доставляется и что происходит потом?
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
znak *mas_in(int n)
{
// В данной функции
znak *mas=new znak[n];
    register int i;
    for (i=0;i<n;i++)
    { cout<<"Vvedute Familiju   ";
      cin>>mas[i].sername;
      cout<<"Vvedite imja   ";
      cin>>mas[i].name;
       cout<<"Vvedite znak zodiaka   ";
      cin>>mas[i].zna;
      cout<<"god rogdenija ";
      cin>>mas[i].data[0];
      cout<<"mesjac ";
      cin>>mas[i].data[1];
cout<<"den'";
      cin>>mas[i].data[2];
      cout<<"\n\n";
    }
    return mas;
 
}
 
void sh_out()
{
    cout.width(10);cout.setf(ios::left);cout<<"Sername";
    cout.width(10);cout.setf(ios::left);cout<<"name";
    cout.width(10);cout.setf(ios::left);cout<<"znak";
    cout.width(10);cout.setf(ios::left);cout<<"day";
    cout.width(10);cout.setf(ios::left);cout<<"month";
    cout.width(10);cout.setf(ios::left);cout<<"year";
    cout<<"\n__________________________________________________________\n";
}
 
 
void mas_out(znak *mas,int n)
{   cout.precision(5);
  for (int i=0;i<n;i++)
    { cout.width(10);cout.setf(ios::left);cout<<mas[i].sername;
      cout.width(10);cout.setf(ios::left);cout<<mas[i].name;
cout.width(10);cout.setf(ios::left);cout<<mas[i].zna;
      cout.width(10);cout.setf(ios::left);cout<<mas[i].data[2];
      cout.width(10);cout.setf(ios::left);cout<<mas[i].data[1];
       cout.width(10);cout.setf(ios::left);cout<<mas[i].data[0]; 
      cout<<"\n";
 
    }
}
void poisk(znak *zo,int k)
{char z[20];
    cout<<"\n Vvedute nazvanie interesuuwego znaka zodiaka";
    cin>>z;
 
    cout<<"\n\n ~~ Itog ~~ \n";
    cout<<"\n";
    int r=0;
        for(int i=0;i<k;i++)
    {
        if (strcmp(zo[i].zna,z)==0)
        {cout.width(10);cout.setf(ios::left);cout<<zo[i].sername;
             cout.width(10);cout.setf(ios::left);cout<<"  ";
             cout.width(10);cout.setf(ios::left);cout<<zo[i].name;
             cout.width(10);cout.setf(ios::left);
             cout<<"\n";
             cout<<"\n";
             r=1;}
 
        }
    if (r==0){
    cout<<"\nNet takogo cheloveka\n\n";};}
 
void main()
{   int k=3;
znak    *zn=new znak[k];
 znak g;
 
    cout<<"vvedite kol-vo chelovek\n";
    cin>>k;
    zn=mas_in(k);
    sh_out();
    mas_out(zn,k);
    cout<<"\n";
    poisk(zn,k);
    cout<<"\n";
      
 g=zn[k-1];
 zn[k-1]=zn[0];
 zn[0]=g;
     
sh_out();
mas_out(zn,k);       
    
    delete[]zn;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2011, 20:28     указатели и структура!Программа написана!
Посмотрите здесь:

C++ Правильно ли написана программа
Прога написана с указателями,как указатели заменить ссылками C++
C++ Программа МКБ-10 написана на С++?
Указатели и структура данных C++
C++ Правильно ли написана программа?
C++ Правильно ли написана программа
Правильно ли написана программа? C++
Правильно ли написана программа? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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