Определить, имеются ли в списке книги, в названии которых встречается некоторое слово - C (СИ)
Формулировка задачи:
Здравствуйте, помогите разобраться. Только сел за си. Написал код но он неправильно работает.
Задача: В библиотеке имеется список книг. Каждая запись этого списка содержит фамилии авторов, название книг, год издания. Определить, имеются ли в данном списке книги, в названии которых встречается некоторое ключевое слово (например, "ПЭВМ"). Если имеются, то выдать на печать фамилии авторов, название и год издания всех таких книг.
Вот код:
Программа пропускает ввод строки.
#include <stdio.h> #include <string.h> struct spisok //объявление структуры { char Fam [20]; char Nazv[50]; char God[4]; // }; struct spisok mas[30]; //объявление массива структур из 30 элементов char Slovo[20]; signed int i,n; main() { int n,k=-1; while (k!=1) { n++; puts("Введите фамилию автора"); gets(mas[n].Fam); //считывание строки puts("Введите название книги"); gets(mas[n].Nazv); puts("Введите год издания"); //вывод строки scanf("%d",mas[n].God); puts("0 - Продолжить ввод, 1 - Выход"); scanf("d",k); printf("%s",mas[1].Fam,mas[1].Nazv,mas[1].God); } puts("Введите слово для поиска книги"); gets(Slovo); clpscr(); for (int i=0;i<=n;i++) { if (strcmp(mas[i].Nazv,Slovo)==0); printf("%d,%s,%s,%d\n",i,mas[i].Fam,mas[i].Nazv,mas[i].God); puts("Книг с таким словом в названии нет\n"); scanf("%d",n); } }
Решение задачи: «Определить, имеются ли в списке книги, в названии которых встречается некоторое слово»
textual
Листинг программы
if (strcmp(mas[i].Nazv,Slovo)==0) //нет ; printf("%d,%s,%s,%d\n",i,mas[i].Fam,mas[i].Nazv,mas[i].God);
Объяснение кода листинга программы
- В условии используется функция strcmp, которая сравнивает строки.
- Если строки равны (strcmp возвращает 0), то выполняется действие, указанное после if, иначе выполняется действие, указанное после else.
- В действии после if происходит печать индекса i, фамилии автора, названия книги и года издания книги.
- Если условие if не выполняется, то выводится только номер книги.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д