tema152331
28.03.2021 15:26

Даны три массива действительных чисел {x} (i=1,2,...,n), {y} (j=1,2,...,m), {z} (k=1,2,...,10).
. Напечатать массив с
а) наибольшей суммой положительных элементов;
б) наименьшей суммой квадратов отрицательных элементов.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
RinaZum
08.10.2021 23:57

#include <stdio.h>

#include <locale.h>

#include <time.h>

#include <stdlib.h>

int main()

{

   setlocale(0, "");

   srand(time(NULL));

   int A[20];

   int amount = 0;

   int size;

   printf("Введите размер массива: ");

   scanf("%d", &size);

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

   {

       A[i] = rand() % 100 - 50;

       printf("%d\t", A[i]);

       amount += A[i];

   }

   printf("\n");

   if (amount > 50)

   {

       printf("%d", amount);

   }

   else

   {

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

       {

           printf("%d\t", A[i]);

       }

   }

}

Объяснение:

#include <stdio.h> // Библиотека ввода - вывода

#include <locale.h> // Библиотека локализации

#include <time.h> // Библиотека для работы со временем

#include <stdlib.h> // Библиотека для рандома

int main()

{

   setlocale(0, ""); // Локализация

   srand(time(NULL)); // Сброс времени (каждый раз новые числа)

   int A[20]; // Создание целочисленного массива размером 20

   int amount = 0; // Создание целочисленной переменной amount, хранящей в себе сумму элементов массива

   int size; // Создание целочисленной переменной, хранящей в себе размер массива

   printf("Введите размер массива: "); // Вывод сообщения в консоль

   scanf("%d", &size); // Вводим размер массива с клавиатуры

   for (int i = 0; i < size; i++) // Идём по массиву

   {

       A[i] = rand() % 100 - 50; // Генерация случайных чисел

       printf("%d\t", A[i]); // Выводим массив

       amount += A[i]; // Суммируем элементы

   }

   printf("\n"); // Перенос на следующую строку

   if (amount > 50) // Если значение переменной amount > 50

   {

       printf("%d", amount); // Выводим сумму

   }

   else // Иначе

   {

       for (int i = 0; i < size; i++) // Идём по массиву

       {

           printf("%d\t", A[i]); // Выводим элементы массива

       }

   }

}

0,0(0 оценок)
Ответ:
honeydrink34324
27.02.2022 00:39

Исходный код:

def pack(m, k, l, p=0):

   c = 0  # базовый случай когда еще не создавали контейнеры

   # если есть что еще фасовать по пакетам

   if m >= l:

       m -= l

       p += 1

       c, p, m = pack(m, k, l, p)  # продолжаем фасовать муку

   # если можно создать контейнер, то создаем

   if p >= k:

       p -= k  

       c += 1

   return c, p, m

m, k, l = map(int, input().split())

print(*pack(m, k, l))

Примечание:

Часть объяснений выполнено в виде комментариев в коде. Комментарии перед отправкой на проверку рекомендую стереть.

Описание переменных: m - остаток муки на текущий момент, k - кол-во пакетов в контейнере, l - кол-во муки в пакете. c - кол-во полных контейнеров, p - кол-во полных пакетов муки. При рекурсивном погружении фасуем по пакетам, при всплытии фасуем по контейнерам. Грамотная возвращение и передача параметров делают свое дело.

Cкрин из редактора кода тоже прикрепил)


На питоне через рекурсию На складе в контейнеры упаковывают пакеты с мукой. Сначала мука пакуется в
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота