Проверьте пожалуйста код препод сказал, что не верен - C (СИ)

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

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

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.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<5; i++)
        {
            printf("[%i]=", i);
            scanf("%i", &A[i]);
        }
 
        printf("Укажите интервал\n");
        printf("a=");
        scanf("%i", &x);
        printf("b=");
        scanf("%i", &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оличество элементов вне интервала: %i\n", count);
 
        max = A[0];
        for ( i = 0; i<B; i++)
        {

            if (max <= A[i]){
 
                max = A[i];
                maxIn = i;
            }
 
        }
        printf("Максимальный элемент: max=A[%i]=%i\n",maxIn, A[maxIn]);
 
        {
            for (i = maxIn + 1; i < B; i++)
            {
                sum += A[i];
            }
            printf("sum=%i\n", sum);
        }

for (i = 0; i < B - 1; i++)
{
    for (j = 0; j < B - 1; j++)
        if (A[j] < A[j + 1])
        {
            temp = A[j + 1];
            A[j + 1] = A[j];
            A[j] = temp;
        }
}
for (i = 0; i<B; i++)
{
    printf("%i ", A[i]);
}
        return 0;
    }
а вот собственно задание В одномерном массиве, состоящем из N вещественных элементов, вычислить: 1) количество элементов массива, лежащих вне диапазона [ a, b]; 2) сумму элементов массива, расположенных после максимального элемента по модулю; 3) упорядочить элементы массива по убыванию модулей элементов.
выручайте а-то повесят
особенно то когда задается интервал я задаю числа а необходимо индексы элементов где лежат числа

Решение задачи: «Проверьте пожалуйста код препод сказал, что не верен»

textual
Листинг программы
#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("%i", &x);
        printf("b=");
        scanf("%i", &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;
    }

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

  1. Включаем необходимые заголовочные файлы
  2. Объявляем массив A размером B и инициализируем его нулями
  3. Объявляем переменные i, j, a, b, max, maxIn, sum, count, x, y, temp
  4. Выводим сообщение и призыв к вводу элементов массива
  5. Считываем элементы массива с помощью функции scanf
  6. Задаем интервал с помощью функции scanf
  7. Определяем отрезок a и b как элементы массива A, соответствующие индексам x и y
  8. Подсчитываем количество элементов вне интервала с помощью цикла и функции scanf
  9. Находим максимальный элемент массива A с помощью цикла и функции scanf
  10. Выводим максимальный элемент массива A и его индекс
  11. Находим сумму элементов массива A, начиная с элемента, следующего за максимальным, с помощью цикла и функции scanf
  12. Проводим сортировку массива A методом пузырька
  13. Выводим отсортированный массив A с помощью цикла и функции scanf
  14. Возвращаем 0, чтобы указать, что программа успешно завершилась

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


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

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

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