Не считается произведение - C (СИ)

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

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

Не считает произведение где ошибка? И если не сложно напишите вывод отсортированного массива.
#include <stdio.h>
#include <math.h>
 
int main(void)
{
    const int N = 5;
    double arr[N];
    for(int i = 0; i < N; i++)
    {
        printf("Vvedite znachenia massiva %d=>",i);
        scanf("%lf", &arr[i]);
    }
 
    int min = abs(arr[0]);
    int max = abs(arr[0]);
    int nomin = 0 ;
    int nomax = 0 ;
    int pr = 1;
    for(int i = 1; i < N; i++){
        if (abs( arr[N]) > max)
        {
            max = abs (arr[N]);
            nomax = i;
        }
        if (abs( arr[N]) < min)
        {
            min = abs (arr[N]);
            nomin = i;
        }
}
        if (nomin < nomax && nomin != nomax && nomax != nomin-1 && nomax != nomin+1){
    for(int i = nomin+1; i < nomax;i++)

        pr *= arr[N];
   } printf("pr= %lf",pr);
    int j;
    for (int i=0; i<N;i++)
{
    for (int i = 0; j < N-i-1; j++)
    {
        if (arr[j]<arr[j+1])
        {
            int buf = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = buf;
        }
    }
}
 
    return 0;
}

Решение задачи: «Не считается произведение»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
 
int main(void)
{
    const int N = 5;
    int arr[N];  //int
    int i;
 
    for(i = 0; i < N; i++)
    {
        printf("Vvedite znachenia massiva %d=>",i);
        scanf("%d", &arr[i]);
    }
 
    int min = abs(arr[0]);
    int max = abs(arr[0]);
    int nomin = 0 ;
    int nomax = 0 ;
    int pr = 1;
    int buf;
 
    for(i = 1; i < N; i++)
    {
        if (abs( arr[i]) > max)
        {
            max = abs (arr[i]);
            nomax = i;
        }
        if (abs( arr[i]) < min)
        {
            min = abs (arr[i]);
            nomin = i;
        }
    }
 
        //замена nomin nomax
        if(nomin > nomax)
        {
            buf=nomin;
            nomin=nomax;
            nomax=buf;
        }
 
        if (nomin < nomax && nomin != nomax && nomax != nomin-1 && nomax != nomin+1)
            {
                for(i = nomin+1; i < nomax;i++)
                {
                    pr*=arr[i];
                }
 
            }
 
      printf("pr= %d\n\n",pr);
 
    int j;
    for (i=0; i<N;i++)
{
    for (j = 0; j < N-i-1; j++)  //j
    {
        if (arr[j]<arr[j+1])
        {
            buf = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = buf;
        }
    }
}
 
for(i=0;i<N;i++)
{
    printf("%d ",arr[i]);
}
 
    return 0;
}

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

  1. В начале программы объявляются переменные:
    • const int N = 5; - N - количество элементов в массиве
    • int arr[N]; - массив arr для хранения чисел
    • int i; - счетчик для цикла
    • int min = abs(arr[0]); - начальное значение минимального числа
    • int max = abs(arr[0]); - начальное значение максимального числа
    • int nomin = 0; - номер минимального числа
    • int nomax = 0; - номер максимального числа
    • int pr = 1; - произведение чисел
    • int buf; - временная переменная для обмена значениями
  2. Затем происходит заполнение массива arr числами, которые вводятся с клавиатуры. Для этого используется цикл for и функция scanf().
  3. Далее идет поиск минимального и максимального чисел в массиве с помощью цикла for и условных операторов if.
  4. Если найдено новое минимальное или максимальное число, то значения переменных min, max, nomin, nomax обновляются.
  5. Если найденные минимальное и максимальное числа удовлетворяют условию (меньше или равно текущему значению pr), то выполняется цикл for, который перемножает все числа, начиная с индекса nomin и заканчивая nomax-1.
  6. В конце программы происходит сортировка массива arr по возрастанию с помощью алгоритма сортировки пузырьком.
  7. Выводится отсортированный массив arr через пробел.
  8. В конце программы возвращается 0, что означает успешное выполнение программы.

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


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

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

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