Найти произведение ненулевых элементов массива, находящихся на позициях, кратных числу 3 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан массив из 18 вещественных чисел, все элементы которого различны. 1) Найти произведение (ненулевых) элементов массива, находящихся на позициях, кратных числу 3. 2) Найти квадраты всех чисел, расположенных между минимальным и максимальным значениями. 3) Упорядочить по возрастанию элементы, находящиеся на местах, не кратных числу 3.

Решение задачи: «Найти произведение ненулевых элементов массива, находящихся на позициях, кратных числу 3»

textual
Листинг программы
#include <stdio.h>
#define SIZE 18
 
void search(int [], int);
void MaxMin(int [], int);
void increase(int [], int);
 
main()
{
    int arr[SIZE] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
 
    void search(arr, SIZE);
    void MaxMin(arr, SIZE);
    void increase(arr, SIZE);
 
}
 
void search(int a[], int size) //произведение на позициях кратных трем
{
    int f1 = 1;
 
    for (int i = 0; i < size; i++)
    {
        if (i % 3 == 0)
            f1 *= a[i]
    }
}
 
void MaxMin(int a[], int size) //нахождение квадратов
{
    int max = a[0], min = a[0];
    int A[size]; //в этом массиве будут храниться все квадраты нужных нам чисел
 
    for (int i = 0; i < size; i++)
    {
        if (max < a[i]) max = i;
        if (min > a[i]) min = i;
    }
 
    int begin = min < max ? min : max;
    int end = min > max ? min : max;
 
    for (int i = 0; begin <= end; begin++)
    {
        A[i] = a[begin] * a[begin];
        i++;
    }
}
 
void increase(int a[], int size)  //сортировка по возрастанию всех элементов не кратных трем
{
    int hold;
 
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++)
            if (i % 3 != 0 && a[i] > a[i + 1])
            {
                hold = a[i];
                a[i] = a[i + 1];
                a[i + 1] = hold;
            }   
}

Объяснение кода листинга программы

  1. В функции main() мы объявляем массив arr[SIZE] размером 18 и инициализируем его нулями.
  2. В функции search(int a[], int size) мы объявляем переменную f1 равной 1. Эта переменная будет использоваться для хранения произведения ненулевых элементов на позициях, кратных трём.
  3. В функции MaxMin(int a[], int size) мы объявляем переменные max и min равными a[0]. Эти переменные используются для хранения текущего максимального и минимального элемента.
  4. Мы создаем новый массив A[size], в котором будут храниться квадраты выбранных элементов.
  5. В функции increase(int a[], int size) мы объявляем переменную hold равной a[i]. Эта переменная используется для временного хранения элемента при его перестановке.
  6. Мы сортируем элементы массива a[], которые не кратны трём, по возрастанию.
  7. В функции search(int a[], int size) мы проходим по всем элементам массива a[] и если текущий элемент находится на позиции, кратной трём, то мы умножаем его на f1.
  8. В конце функции search(int a[], int size) мы выводим значение переменной f1, которое и является искомым произведением.
  9. В функции MaxMin(int a[], int size) мы проходим по всем элементам массива a[] и если текущий элемент меньше max, то мы обновляем max. Аналогично, если текущий элемент больше min, то мы обновляем min.
  10. Мы находим минимальное и максимальное значение в массиве a[] и сохраняем их в переменных min и max.
  11. Мы создаем новый массив A[size], в котором будут храниться квадраты выбранных элементов.
  12. Мы проходим по всем элементам массива a[], начиная с min и до max (включительно), и если текущий элемент не кратен трём, то мы добавляем его в массив A[]**, возведя в квадрат.
  13. В функции increase(int a[], int size) мы проходим по всем элементам массива a[] и если текущий элемент не кратен трём и больше следующего элемента, то мы меняем их местами с помощью переменной hold.
  14. Мы сортируем элементы массива a[], которые не кратны трём, по возрастанию.

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


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

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

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