Найти сумму элементов массива, расположенных между первым и вторым отрицательными элементами - 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 и программы в целом
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д