Определить, есть ли в наличии книга "Информатика" за 1990 год - C (СИ)
Формулировка задачи:
Задан файл, который содержит информацию о книгах (фамилия, название, год издания). Определить, есть ли в наличии книга "Информатика" за 1990 год. Если да, то вывести фамилию автора, если несколько, то вывести полную информацию обо всех эти книги.
Решение задачи: «Определить, есть ли в наличии книга "Информатика" за 1990 год»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define SIZE 64
int main(void)
{
char author[SIZE], name[SIZE];
int year;
int flag = 0; /* ГґГ«Г*ГЈ, îòâå÷Г*ГѕГ№ГЁГ© Г*Г*øëè õîòü îäГ*Гі óäîâëåòâîðÿþùóþ Г§Г*ГЇГЁГ±Гј */
FILE *fp = fopen("input.txt", "r"); /* îòêðûâГ*ГҐГ¬ ГґГ*éë äëÿ Г·ГІГҐГ*ГЁГї */
if (!fp)
return 1; /* Г§Г*âåðøèòü Г± îøèáêîé */
/* ïîêГ* Г*ГҐ ГЄГ®Г*ГҐГ¶ ГґГ*éëГ* ГЁ Г*ГҐ Г*Г*øëè Г*ГЁ îäГ*îé óâäîâëåòâîðÿþùåé Г*Г*Г± Г§Г*ГЇГЁГ±ГЁ ГЁ
ГіГ¤Г*ëîñü Г±Г·ГЁГІГ*ГІГј ГЁГ*ôîðìГ*Г¶ГЁГѕ */
while (!feof(fp) && !flag && fscanf(fp, "%s", author) != EOF &&
fscanf(fp, "%s", name) != EOF && fscanf(fp, "%d", &year) != EOF)
{
/* åñëè Г*Г*øëè Г*ГіГ¦Г*îå Г*Г*Г¬ ñîâïГ*äåГ*ГЁГҐ, ГіГ±ГІГ*Г*Г*âëèâГ*ГҐГ¬ ГґГ«Г*ГЈ Гў ГЁГ±ГІГЁГ*Гі */
if (strcmp(name, "Informatics") == 0 && year == 1990)
flag = 1;
}
rewind(fp); /* Г±ГЎГ°Г*ñûâГ*ГҐГ¬ îøèáêó eof ГЁ ГіГ±ГІГ*Г*Г*âëèâГ*ГҐГ¬ ñ÷èòûâГ*Г*ГЁГҐ Гў Г*Г*Г·Г*ëî */
/* ïîêГ* Г*ГҐ ГЄГ®Г*ГҐГ¶ ГґГ*éëГ* ГЁ ГіГ¤Г*ëîñü Г±Г·ГЁГІГ*ГІГј ГЁГ*ôîðìГ*Г¶ГЁГѕ */
while (!feof(fp) && fscanf(fp, "%s", author) != EOF &&
fscanf(fp, "%s", name) != EOF && fscanf(fp, "%d", &year) != EOF)
{
/* åñëè Г*ГҐ ГіГ±ГІГ*Г*îâëåГ* ГґГ«Г*ГЈ èëè ГіГ±ГІГ*Г*îâëåГ* ГЁ Г§Г*ГЇГЁГ±Гј óäîâëåòâîðÿåò óñëîâèÿì */
if (!flag || (flag && strcmp(name, "Informatics") == 0 && year == 1990) )
{
printf("Author: %s\n", author);
printf("Name: %s\n", name);
printf("Year: %d\n\n", year);
}
}
fclose(fp); /* Г§Г*êðûâГ*ГҐГ¬ ГґГ*éë */
return 0;
}