Найти сумму элементов массива, расположенных между первым и вторым отрицательными элементами - 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; }
Объяснение кода листинга программы
- #include
включает в себя файл стандартного ввода/вывода, который позволяет программе выводить информацию на экран - void elementsSum(float array[], int size) - функция, которая принимает два аргумента: массив и размер этого массива.
- float min = array[0]; - инициализация переменной min первым элементом массива
- float sum = 0; - инициализация переменной sum нулем
- int flag = 0; - инициализация переменной flag нулем
- for ( int i = 0; i < size; i++ ) { - цикл, который проходит по всем элементам массива
- if ( min > array[i] ) { - если текущий элемент меньше первого отрицательного элемента, то он становится новым первым отрицательным элементом
- min = array[i]; - обновление значения первого отрицательного элемента
- if ( array[i] < 0 ) { - если текущий элемент отрицательный, то увеличивается значение переменной flag
- flag += 1; - обновление значения переменной flag
- if ( flag == 1 && array[i] >= 0 ) { - если flag равен 1 и текущий элемент больше или равен нулю, то он добавляется к сумме
- sum += array[i]; - обновление значения суммы
- printf(
min=%0.2f\n
, min); - вывод значения первого отрицательного элемента с точностью до двух знаков после запятой - if ( flag > 1 ) { - если flag больше 1, то выводится значение суммы
- printf(
sum=%0.2f\n
, sum); - вывод значения суммы с точностью до двух знаков после запятой - else { - если flag равен 1, то выводится сообщение о том, что в массиве недостаточно отрицательных элементов
- printf(
There aren't enough negative elements!\n
); - вывод сообщения - return 0; - завершение работы программы
- int main() { - функция, которая запускает программу
- printf(
Enter array size:\n
); - вывод сообщения с просьбой ввести размер массива - scanf(
%d
, &size); - считывание размера массива с помощью функции scanf - if ( size > 0 ) { - проверка, что размер массива больше нуля
- float array[size]; - создание массива с заданным размером
- printf(
Enter elements:\n
); - вывод сообщения с просьбой ввести элементы массива - for ( int i = 0; i < size; i++ ) { - цикл, который проходит по всем элементам массива
- scanf(
%f
, &array[i]); - считывание элемента массива с помощью функции scanf - elementsSum(array, size); - вызов функции, которая находит сумму элементов массива
- } - завершение цикла
- return 0; - завершение работы функции main и программы в целом
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д