Написать функции поиска структуры с заданным значением выбранного элемента - 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 выполняется следующие действия:

  1. #include - подключается библиотека conio.h, которая содержит функции для работы с консолью.
  2. #include - подключается библиотека stdio.h, которая содержит функции для работы с вводом/выводом данных.
  3. int main(void) - определяется главная функция программы, которая содержит тело программы и является точкой входа в приложение.
  4. printf(%s, Hello world); - выводится приветствие Hello world с помощью функции printf().
  5. getch(); - блокирующий вызов, который ожидает нажатия клавиши в консоли. Список действий в коде:
  6. Подключение библиотек
  7. Определение главной функции
  8. Вывод приветствия
  9. Ожидание нажатия клавиши

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы