Вычисления в одномерном массиве (найти ошибку) - C (СИ)

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

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

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
 
#define B 5
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
        int A[B];
        int i,j,a,b;
        int max;
        int maxIn = 0;
        int sum=0;
        int count = 0;//переменная счетчика
        int x, y;
        int temp;
 
        printf("Введем элементы массива\n");
        for (int i = 0; i < B; i++)
        {
            printf("[%d]=", i);
            scanf("%d", &A[i]);
        }
 
        printf("Укажите интервал\n");
        printf("a=");
        scanf("%d", &x);
        printf("b=");
        scanf("%d", &y);
        a=A[x],b=A[y];//отрезок a,b
        for (i = 0; i<B; i++)
        {
            if (A[i] < a || A[i] > b)
                count++;//сам подсчет
        }
 
        printf("Kоличество элементов вне интервала: %d\n", count);
 
        max = abs(A[0]);
        for ( i = 0; i<B; i++)
        {
            if (max <= abs(A[i])){
                max = abs(A[i]);
                maxIn = i;
            }
 
        }
        printf("Максимальный элемент: max=A[%d]=%d\n",maxIn, abs(A[maxIn]));
 
        {
            for (i = maxIn + 1; i < B; i++)
                sum += A[i];
            printf("sum=%d\n", sum);
        }
 
for (i = 0; i < B ; i++)
{
    for (j = i+1; j < B ; j++)
        if (abs(A[i]) < abs(A[j]))
        {
            temp = A[j];
            A[j] = A[i];
            A[i] = temp;
        }
}
for (i = 0; i<B; i++)
    printf("%i ", A[i]);
 
        return 0;
    }
это код это задание В одномерном массиве, состоящем из N вещественных элементов, вычислить: 1) количество элементов массива, лежащих вне диапазона [ a, b]; 2) сумму элементов массива, расположенных после максимального элемента по модулю; 3) упорядочить элементы массива по убыванию модулей элементов. картинка прикреплена с программой

Решение задачи: «Вычисления в одномерном массиве (найти ошибку)»

textual
Листинг программы
count = B - (y - x + 1); // при условии что y >= x. Если не так, то поменять их местами, и y и x < B

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

  1. Переменная count инициализируется значением B.
  2. В скобках вычисляется выражение y - x + 1.
  3. Результат вычитания присваивается переменной count.
  4. Условие проверяет, что y больше или равно x.
  5. Если условие не выполняется, то y и x меняются местами.
  6. И y и x меньше B.

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


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

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

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