Написать функции поиска структуры с заданным значением выбранного элемента - C (СИ)
Формулировка задачи:
Есть массив структур. Нужно написать функции поиска структуры с заданным значением выбранного элемента, поиска с заданным признаком(по диапазону) и функцию сортировки по заданному полю.
Вроде все правильно написал, но собсно не работает)
Подскажите плиз в чем косяк)
#include <stdio.h> #include <conio.h> #include <ctype.h> #include <string.h> struct films { char *name; char *director; int mat_year; int cost; int costme; }; void MenuTable(); void SearchParam(); //ф-ия, возвращающая по индексу все поля структуры int binsearch(char *, struct films *, int); //ф-ия поиска индекса элемента в структуре void MenuTable() { int type; printf("Vyberite:\n1 - Current search\n2 - Search\n3 - Sorted\n4 - exit...\n "); scanf("%d", &type); if (type == 1) { SearchParam(); } if (type == 2) { //Search(); } else if (type == 3) { //SortParam(); } else if (type == 4) { return; } } int binsearch(char *fname, struct films ftab[], int n) { int c, low, mid, high; low = 0; high = n-1; while(low <= high) { mid = (low + high) / 2; if ((c = strcmp(fname, ftab[mid].name)) < 0) high = mid - 1; else if(c > 0) low = mid + 1; else return mid; } return -1; } void SearchParam() { char *fname; printf("Vvedite nazvanie\n"); scanf("%s", &fname); struct films { char *name; //название char *director; //режиссер int mat_year; //год выпуска int cost; //цена int costme; //доход } ftab[7] = { {"Avatar", "James Kemeron", 2010, 600, 1000000}, {"Titanik", "James Kemeron", 1997, 500, 1000000}, {"Edje of Darkness", "Martin Campbell", 2010, 123, 1000000}, {"Peacoc", "Mikl Lander", 2010, 123, 1000000}, {"Casino Royale", "Martin Campbell", 2006, 123, 1000000}, {"Halloween", "Rom Zombi", 2007, 123, 1000000}, {"The Others", "Alejandro Amenabar", 2001, 123, 1000000} }; int i; i = binsearch(fname, ftab[], 7); printf("%s\n%s\n%d\n%d\n%d", ftab[i].name, ftab[i].director, ftab[i].mat_year, ftab[i].cost, ftab[i].costme); getch(); } void main() { clrscr(); MenuTable(); }
Решение задачи: «Написать функции поиска структуры с заданным значением выбранного элемента»
textual
Листинг программы
#include <conio.h> #include <stdio.h> int main(void) { printf("%s", "Hello world"); getch(); }
Объяснение кода листинга программы
В данном коде на языке C выполняется следующие действия:
- #include
- подключается библиотека conio.h, которая содержит функции для работы с консолью. - #include
- подключается библиотека stdio.h, которая содержит функции для работы с вводом/выводом данных. - int main(void) - определяется главная функция программы, которая содержит тело программы и является точкой входа в приложение.
- printf(
%s
,Hello world
); - выводится приветствиеHello world
с помощью функции printf(). - getch(); - блокирующий вызов, который ожидает нажатия клавиши в консоли. Список действий в коде:
- Подключение библиотек
- Определение главной функции
- Вывод приветствия
- Ожидание нажатия клавиши
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д