Код:
#include <iostream>
#include <math.h>
#include <locale.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <iomanip>
#include <ctype.h>
#define number 8
using namespace std;
struct znzd{
char fio[20];
char zn[10];
int data[3];
}znak[number];
void poryadok(znzd*dop,int col);
void info(znzd*dop,int col);
void chet(znzd*dop,int col);
int dop,min,j,i,a,kolznaka;
void main()
{
int menu;
setlocale(LC_ALL,"Russian_Russia.1251");
int i=0;
int col=0;
int a=0;
int j=0;
int kolznaka=0;
{
int min,i,j;
znzd znak[number];
cout<<"Введите Фамилию Имя Отчество ";
fflush(stdin);
while(cin.getline(znak[col].fio,20))
if(strcmp(znak[col].fio,"#")!=0 && col<number)
{
cout<<" Введите знак зодиака ";
cin>>znak[col].zn;
cout<<" Введите дату рождения ";
cin>> znak[col].data[0];
cin>>znak[col].data[1];
cin>>znak[col].data[2];
cout<<"Введите Фамилию Имя Отчество ";
col++;fflush(stdin);
}else break;
}
while(1)
{
cout<<"\n\t\t\t"<<"Меню \n";
cout<<"1.Упорядоченность по датам рождения \n";
cout<<"2.Вывод на экран информации о человеке, чья фамилия введена с клавиатуры \n";
cout<<"3.Подсчитать количество людей, принадлежащих каждому знаку Зодиака\n";
cout<<"4.exit \n";
cout<<"\n Выберите пункт -> ";
cin>>menu;
switch (menu)
{
case 1:poryadok(znak, col);break;
case 2:info(znak, col);break;
case 3:chet(znak, col);break;
case 4:exit(0);
default:cout<<"\n\t Введите еще раз"<<"\n";
}
}
}
// для порядка
void poryadok(znzd*dop,int col)
{
int min;
cout<<"\n\t\tУпорядоченность по дате рождения \n";
for (i=0;i<col;i++)
{
min=i;
for (j=i+1;j<col;j++)
{
if (znak[j].data[2] < znak[min].data[2])
min=j;
else if(znak[j].data[1]<znak[min].data[1])
min=j;
else if (znak[j].data[0]<znak[min].data[0])
min=j;
znzd dop=znak[i];
znak[i]=znak[min];
znak[min]=dop;
}
}
cout<<"\tФамилия "<<"\tЗнак Зодиака"<<"\t Дата рождения"<<endl;
cout<<"__________________________________________________________"<<endl;
for (i=0;i<col;i++)
{
cout<<"\t"<<znak[i].fio<<"\t\t"<<znak[i].zn<<"\t\t"<<znak[i].data[0]<<"."<<znak[i].data[1]<<"."<<znak[i].data[2]<<"\n"<<endl;
}
}
// для инфо
void info(znzd*dop,int col)
{
a=0;
i=0;
int min,i,j;
znzd znak[number];
cout<<"Введите Фамилию Имя Отчество ";
fflush(stdin);
while(cin.getline(znak[col].fio,20))
if(strcmp(znak[col].fio,"#")!=0 && col<number)
{
cout<<" Введите знак зодиака ";
cin>>znak[col].zn;
cout<<" Введите дату рождения ";
cin>> znak[col].data[0];
cin>>znak[col].data[1];
cin>>znak[col].data[2];
cout<<"Введите Фамилию Имя Отчество ";
col++;fflush(stdin);
}else break;
char familia[20];
cout<<" Введите фамилию человека,о котором хотите получить -> ";cin>>familia;
for (i=0;i<col;i++)
{
if (strstr(znak[i].fio,familia))
{
cout<<znak[i].fio<<" Знак зодиака: "<<znak[i].zn<<" Дата рождения: "<<znak[i].data[0]<<"."<<znak[i].data[1]<<"."<<znak[i].data[2]<<"\n";
a=1;
}
}
if (a==0)
cout<<"Такого человека нет"<<endl;
}
// для счета
void chet(znzd*dop,int col)
{
char znaki[10];
cout<<"\n\tПодсчет количества людей,принадлежащих каждому знаку Зодиака "<<endl;
j=0;
do
{
kolznaka=0;
cout<<"Введите знак и вы получите количество людей,принадлежащих этому знаку ";
cin>>znaki;
for (int i=0;i<col;i++)
{
if (strstr(znak[i].zn,znaki))
kolznaka++;
}
cout<<"Количество людей этого знака: "<<kolznaka<<"\n";
if(kolznaka==0) break;
} while(j<col);
}
Не понимаю,почему не исполняет программы в функциях poryadok,info,
chet.Объясните ,пожалуйста,чего не хватает.