C/C++

Дан массив записей учеников

(ФИО, рост, дата_рождения (дд/мм/гггг)). Написать функцию, которая определяет количество учеников, которые рождены в заданном году
EB
Eli Bagirov
96
/* программа на языке Си */
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define SIZE_1 6
#define SIZE_2 3
#define SIZE_3 24
int qulity (char base[SIZE_1][SIZE_2][SIZE_3], char year[5])
{
int q = 0;
for (int x = 0; x < SIZE_1; x++)
{
char tmp_y[5];
char c;
int i = 0;
int len = strlen(base[x][2]);
while (i < 4 && base[x][2][len - i - 1] != '.' &&
base[x][2][len - i - 1] != '/')
{
tmp_y[3-i] = base[x][2][len - i - 1];
i++;
};
tmp_y[4] = '\0';

if (strcmp(tmp_y,year) == 0)
q++;
}
return q;
}
int main()
{
int q = 0;
char base[SIZE_1][SIZE_2][SIZE_3];
for(int x = 0; x < SIZE_1; x++)
{
int i = 0;
char c;
printf("Введите Ф. И. О.: ");
do
{
c=getchar();
if (c != '\t' && c != '\n')
base[x][0][i++] = c;
} while (c != '\t' && c != '\n' && i < SIZE_3);
base[x][0][i] = '\0';

int j = 0;
printf("Введите рост: ");
do
{
c=getchar();
if (c != '\t' && c != '\n' && isdigit(c))
base[x][1][j++] = c;
} while (c != '\t' && c != '\n' && j < SIZE_3);
base[x][1][j] = '\0';

int k = 0;
printf("Введите дату рождения: ");
do
{
c=getchar();
if (isdigit(c) || c == '.' || c == '/')
base[x][2][k++] = c;
} while (c != '\t' && c != '\n' && k < SIZE_3);
base[x][2][k] = '\0';

}
printf("Введите год рожедения: ");
char year[5];
int y = 0;
char d;
do
{
d = getchar();
if (isdigit(d))
year[y++]=d;
} while (y < 4);
year[4] = '\0';
q = qulity (base, year);
printf("%d\n", q);
return 0;
}
Бек Рахимов
Бек Рахимов
89 961
Лучший ответ

Похожие вопросы