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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. void elementsSum(float array[], int size) {
  4.     float min = array[0];
  5.     float sum = 0;
  6.     int flag = 0;
  7.    
  8.     for ( int i = 0; i < size; i++ ) {
  9.         if ( min > array[i] ) {
  10.             min = array[i];
  11.         }
  12.         if ( array[i] < 0 ) {
  13.             flag += 1;
  14.         }
  15.         if ( flag == 1 && array[i] >= 0 ) {
  16.             sum += array[i];
  17.         }
  18.     }
  19.     printf("min=%0.2f\n", min);
  20.     if ( flag > 1 ) {
  21.         printf("sum=%0.2f\n", sum);
  22.     } else {
  23.         printf("There aren't enough negative elements!\n");
  24.     }
  25. }
  26.  
  27. int main() {
  28.     int size;
  29.    
  30.     printf("Enter array size:\n");
  31.     scanf("%d", &size);
  32.    
  33.     if ( size > 0 ) {
  34.         float array[size];
  35.        
  36.         printf("Enter elements:\n");
  37.         for ( int i = 0; i < size; i++ ) {
  38.             scanf("%f", &array[i]);
  39.         }
  40.        
  41.         elementsSum(array, size);
  42.     } else {
  43.         printf("Size must be > 0\n");
  44.     }
  45.    
  46.     return 0;
  47. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы