Распечатать фамилии детей данного детского сада, которые родились в определенном месяце (Turbo C) - C (СИ)
Формулировка задачи:
Из этой готовой задачи "Из данного списка спортсменов распечатать сведения о тех
из них, кто занимается плаванием. Указать возраст, сколько лет
они занимаются спортом."
поменять на задачу Распечатать фамилии детей данного детского сада, которые
родились в определенном месяце; указать их возраст и группу.
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
int i, n, age, swim_years;
struct man
{
char name[20];
char sport[15];
int year_born;
int year_begin;
};
man sportsmen[30];
clrscr();
printf("num=");
scanf("%d", &n);
for(i=1; i<=n; i++)
{
printf("\nRecord #%d:\n",i);
printf("name:"); scanf("%s",&sportsmen[i].name);
printf("sport:"); scanf("%s",&sportsmen[i].sport);
printf("year born:"); scanf("%d",&sportsmen[i].year_born);
printf("year begin:"); scanf("%d",&sportsmen[i].year_begin);
}
printf("\n\nSwimmers:\n");
for(i=1; i<=n; i++)
{
if (strcmp(sportsmen[i].sport,"swim")==0)
{
age=2014-sportsmen[i].year_born;
swim_years=2014-sportsmen[i].year_begin;
printf("%s, age:%d, %s, years:%d\n",sportsmen[i].name, age, sportsmen[i].sport, swim_years);
}
}
}Решение задачи: «Распечатать фамилии детей данного детского сада, которые родились в определенном месяце (Turbo C)»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
int i, n, age, swim_years;
struct man
{
char name[20];
char sport[15];
int year_born;
int mounts;
int year_begin;
};
man sportsmen[30];
clrscr();
printf("num=");
scanf("%d", &n);
for(i=1; i<=n; i++)
{
printf("\nRecord #%d:\n",i);
printf("name:"); scanf("%s",&sportsmen[i].name);
printf("sport:"); scanf("%s",&sportsmen[i].sport);
printf("year born:"); scanf("%d",&sportsmen[i].year_born);
printf("mounts born:"); scanf("%d",&sportsmen[i].mounts);
printf("year begin:"); scanf("%d",&sportsmen[i].year_begin);
}
printf("\n\nSwimmers:\n");
for(i=1; i<=n; i++)
{
if (sportsmen[i].mounts==6)
{
age=2014-sportsmen[i].year_born;
swim_years=2014-sportsmen[i].year_begin;
printf("%s, age:%d, group:%s\n",sportsmen[i].name, age, sportsmen[i].sport);
}
}
}
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
i,n,age,swim_years- целочисленные переменные для цикла и вычисления возраста;struct man- структура данных для хранения информации о спортсмене;man sportsmen[30]- массив структур для хранения данных о спортсменах;clrscr()- функция очистки экрана;printf()- функция вывода информации на экран;scanf()- функция ввода информации с клавиатуры.
- Происходит запрос на ввод количества записей, которые нужно добавить в массив
sportsmen. - Заполняется массив
sportsmenданными о спортсменах с помощью функцииscanf(). - Выводится информация о каждом спортсмене с помощью функции
printf(). - Выводится список спортсменов, которые родились в определенном месяце (в данном случае, это спортсмены, у которых
mountsравно 6). Для этого используется два вложенных цикла. В первом цикле происходит проверка значенияmounts, а во втором - вычисление возраста и группы спортсменов. - Возраст вычисляется как разница между 2014 годом и годом рождения спортсмена, а группа - как разница между 2014 годом и годом начала занятий спортом.
- Выводится информация о спортсмене, если он родился в определенном месяце.