Найти сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C (СИ) (73492)

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

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

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
#include <locale.h>
#define A 10
 
int main()
{
    setlocale(LC_CTYPE,"Russian");
    int j,i,min,M[A];
 
    printf("Введите элементы массива \n");
    for(i=0;i<10;i++)
    {
        printf("[%i]=",i+1);
        scanf ("%d",&M[i]);
       }
 
     getchar();
return 0;
}
не могу сообразить как сделать так чтобы программа нашла наименьший элемент массива и сумму элементов массива, расположенных между первым и вторым отрицательными элементами

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

textual
Листинг программы
#include <stdio.h>
 
void elementsSum(float array[], int size) {
    float min = array[0];
    float sum = 0;
    int flag = 0;
    
    for ( int i = 0; i < size; i++ ) {
        if ( min > array[i] ) {
            min = array[i];
        }
        if ( array[i] < 0 ) {
            flag += 1;
        }
        if ( flag == 1 && array[i] >= 0 ) {
            sum += array[i];
        }
    }
    printf("min=%0.2f\n", min);
    if ( flag > 1 ) {
        printf("sum=%0.2f\n", sum);
    } else {
        printf("There aren't enough negative elements!\n");
    }
}
 
int main() {
    int size;
    
    printf("Enter array size:\n");
    scanf("%d", &size);
    
    if ( size > 0 ) {
        float array[size];
        
        printf("Enter elements:\n");
        for ( int i = 0; i < size; i++ ) {
            scanf("%f", &array[i]);
        }
        
        elementsSum(array, size);
    } else {
        printf("Size must be > 0\n");
    }
    
    return 0;
}

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

  1. #include включает в себя файл стандартного ввода/вывода, который позволяет программе выводить информацию на экран
  2. void elementsSum(float array[], int size) - функция, которая принимает два аргумента: массив и размер этого массива.
  3. float min = array[0]; - инициализация переменной min первым элементом массива
  4. float sum = 0; - инициализация переменной sum нулем
  5. int flag = 0; - инициализация переменной flag нулем
  6. for ( int i = 0; i < size; i++ ) { - цикл, который проходит по всем элементам массива
  7. if ( min > array[i] ) { - если текущий элемент меньше первого отрицательного элемента, то он становится новым первым отрицательным элементом
  8. min = array[i]; - обновление значения первого отрицательного элемента
  9. if ( array[i] < 0 ) { - если текущий элемент отрицательный, то увеличивается значение переменной flag
  10. flag += 1; - обновление значения переменной flag
  11. if ( flag == 1 && array[i] >= 0 ) { - если flag равен 1 и текущий элемент больше или равен нулю, то он добавляется к сумме
  12. sum += array[i]; - обновление значения суммы
  13. printf(min=%0.2f\n, min); - вывод значения первого отрицательного элемента с точностью до двух знаков после запятой
  14. if ( flag > 1 ) { - если flag больше 1, то выводится значение суммы
  15. printf(sum=%0.2f\n, sum); - вывод значения суммы с точностью до двух знаков после запятой
  16. else { - если flag равен 1, то выводится сообщение о том, что в массиве недостаточно отрицательных элементов
  17. printf(There aren't enough negative elements!\n); - вывод сообщения
  18. return 0; - завершение работы программы
  19. int main() { - функция, которая запускает программу
  20. printf(Enter array size:\n); - вывод сообщения с просьбой ввести размер массива
  21. scanf(%d, &size); - считывание размера массива с помощью функции scanf
  22. if ( size > 0 ) { - проверка, что размер массива больше нуля
  23. float array[size]; - создание массива с заданным размером
  24. printf(Enter elements:\n); - вывод сообщения с просьбой ввести элементы массива
  25. for ( int i = 0; i < size; i++ ) { - цикл, который проходит по всем элементам массива
  26. scanf(%f, &array[i]); - считывание элемента массива с помощью функции scanf
  27. elementsSum(array, size); - вызов функции, которая находит сумму элементов массива
  28. } - завершение цикла
  29. return 0; - завершение работы функции main и программы в целом

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


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

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

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