М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Kononovichlika
Kononovichlika
21.02.2020 18:29 •  Информатика

Язык программирования си ! написать программу для работы с массивом структур . программа требует: 1. создайте шаблон структуры с полями, которые соответствуют предметной области . 2. определите тип конструкции. 3. определите размер массива из пяти элементов, каждый из которых является определенной структурой. программа должна выполнять следующие функции: 1. ввод данных структуры с клавиатуры. 2. выполнение работы с массивом конструкций в соответствии с требованиями . 3. вывод результата на экран, при необходимости, в виде таблицы. данные внутри структуры должны совпадать с темой : 1. опишите структуру с именем price, содержащее следующие поля: • наименование продукта; • наименование магазина, в котором товары; • стоимость товара . 2. напишите программу, которая выполняет следующие действия: • ввод данных с клавиатуры в массив из 5 структур типа price; • организовывать записи в алфавитном порядке по названиям магазинов; • вывод информации о товарах, продаваемых в магазине, который был введен с клавиатуры; если элементов нет, отобразите соответствующее сообщение на экране.

👇
Ответ:
milena7772
milena7772
21.02.2020

Сортировал массив пузырьком (сравнивал первый символ в названии магазина).

Пробегался циклом через массив и функцией strcmp, сравнивал названия магазинов и строку с названием того магазина, который мы ищем.

Если вкратце, strcmp возвращает нам -1 когда строка которая передаётся в качестве первого параметра больше, 0 когда они равны (по содержимому тоже), и 1 если строка которая передаётся 2 параметром больше.

Вот мой вариант:

#include <stdio.h>

#include <string.h>

#include <ctype.h>

#include <windows.h>

template <typename T>

struct PRICE

{

   char prod_name[20];

   char shop_name[20];

   T price;

};

template <typename T>

void sortByShop(PRICE<T>* arr, int size)

{

   PRICE<T> tmp;

   bool check=true;

   while(check)

   {

       check=false;

       for(int i=0; i < size-1; ++i)

       {

           if(toupper(arr[i].shop_name[0])>toupper(arr[i+1].shop_name[0]))

           {

               tmp = arr[i];

               arr[i]=arr[i+1];

               arr[i+1]=tmp;

               check=true;

           }

       }

   }

}

template <typename T>

void show(PRICE<T>* arr, int size)

{

   for(int i = 0; i < size; ++i)

   {

       printf("\nshop name -> %s\n",arr[i].shop_name);

       printf("poduct name -> %s\n",arr[i].prod_name);

       printf("poduct price -> %d\n",arr[i].price);

   }

}

int main()

{

   const int size = 5;

   PRICE<double> arr[size];

   for(int i = 0; i < size; ++i)

   {

       printf("Enter shop name -> ");

       scanf("%s",&arr[i].shop_name);

       printf("Enter poduct name -> ");

       scanf("%s",&arr[i].prod_name);

       printf("Enter poduct price -> ");

       scanf("%d",&arr[i].price);

   }

   show(arr,size);

   sortByShop(arr,size);

   printf("\nSorted array.\n");

   show(arr,size);

   char target[20];

   printf("Enter shop name -> ");

   scanf("%s",&target);

   bool check=false;

   for(int i = 0; i < size; ++i)

   {

       if(strcmp(arr[i].shop_name,target)==0)

       {

           printf("\nFounded products:\n");

           printf("poduct name -> %s\n",arr[i].prod_name);

           check=true;

       }

   }

   if(!check) printf("Shop is not founded.\n");

   system("pause");

}

4,4(39 оценок)
Открыть все ответы
Ответ:
chery97
chery97
21.02.2020
1)
uses crt;
const size = 10;
var a:array [1..size] of integer;
     i,p:longint;
begin
  p:=1;
  randomize;
  for i:=1 to size do
    begin
      a[i]:=random(20);
      write (a[i],' ');
      if (a[i] mod 3 = 0) then p:=p*a[i];
    end;
  writeln;
  writeln (p);
end.

2)
uses crt;
const size = 10;
var a:array [1..size] of integer;
     i:integer;
     s:real;
begin
  s:=0;
  randomize;
  for i:=1 to size do
    begin
      a[i]:=random(4)+1;
      write (a[i],' ');
      s:=s+a[i];
    end;
  writeln;
  s:=s/size;
  writeln (s);
end.
4,8(78 оценок)
Ответ:
1)constn=10;var i,k,min:integer; mas: array [1..n] of integer; begin  randomize;  for i:=1 to n do   mas[i]:=random(65);   min:=mas[1];   for i:=1 to n do    if mas[i] < min then    begin   min:=mas[i];   k:=i;   end;   for i:=1 to n do   write(mas[i]:4);   writeln();   writeln('minimalnoe=',min);   writeln('index=',k);   end.
2)constn=10;var i,k,min:integer; mas: array [1..n] of integer; begin  randomize;  for i:=1 to n do   mas[i]:=random(65);   for i:=1 to n do    write(mas[i]:4);  for i:=1 to n do    if mas[i] mod 3 = 0 then   mas[i]:=0;   writeln();   for i:=1 to n do    write(mas[i]:4);   end.
1. в одномерном массиве найти значение и номер минимального элемента . 2. в одномерном массиве замен
1. в одномерном массиве найти значение и номер минимального элемента . 2. в одномерном массиве замен
4,4(93 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ