Вывести сведения о всех книгах изданных с 1990 г. в названии которых содержится слово "информатика" - C (СИ)
Формулировка задачи:
Имеются следующие сведения о книгах:
Фамилии и инициалы автора, название, год издания.
Вывести сведения о всех книгах изданных с 1990 г. в названии которых содержится слово "информатика"
Прошу, помогите решить задачу))
Решение задачи: «Вывести сведения о всех книгах изданных с 1990 г. в названии которых содержится слово "информатика"»
textual
Листинг программы
# include <stdio.h>
# include <string.h>
struct book
{
char familiya[100];
char initialy[10];
char nazvaniye[100];
int god;
};
int main(int argc, char *argv[])
{
const int count = 3; /* количество книг */
struct book bk[] =
{
{"Николаев",
"М.О.",
"информатика. Учебник для начинающих",
1990
},
{"Сергеев",
"Н.Е",
"Рассказы о животных",
1988
},
{"Васильев",
"А.Б.",
"учебник. информатика.",
1992
}
};
int i;
for (i = 0; i < count; i++)
{
if (bk[i].god >= 1990 && (strstr(bk[i].nazvaniye, "информатика") != NULL))
{
printf("%s %s %s %d\n",
bk[i].familiya,
bk[i].initialy,
bk[i].nazvaniye,
bk[i].god);
}
}
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
и . - Определяется структура book, которая содержит поля: фамилия автора (familiya), инициалы автора (initialy), название книги (nazvaniye), год издания (god).
- В функции main определяется константа count, которая задает количество книг в массиве.
- Задается массив bk, который содержит информацию о книгах. Каждая запись в массиве представляет одну книгу.
- Переменная i инициализируется нулем и используется в цикле for для перебора элементов массива bk.
- Условие if проверяет, что год издания книги больше или равен 1990 и в названии книги содержится слово
информатика. - Если условие выполняется, то выводится информация о книге: фамилия автора, инициалы автора, название книги и год издания.
- После завершения цикла for, функция main возвращает 0, что означает успешное выполнение программы.