Вычислить сумму элементов массива, расположенных до последнего положительного элемента - C (СИ)
Формулировка задачи:
В одномерном массиве, состоящем из N вещественных элементов, вычислить Сумму элементов массива, расположенных до последнего положительного элемента
Помогите
Решение задачи: «Вычислить сумму элементов массива, расположенных до последнего положительного элемента»
textual
Листинг программы
#include <stdlib.h> #include <time.h> #include <conio.h> #include <stdio.h> #include <locale.h> int main() { setlocale(LC_ALL, "RUSSIAN"); int n,i,q=0,s=0; while(!fflush(stdin)&&printf("Введите размерность = ")&&!scanf("%i",&n)); int *mas1 = (int*)malloc(n*sizeof(int)); printf("\n\t\tВвод данных\n\n"); for (i = 0;i<n;i++) { while(!fflush(stdin)&&printf("mas1[%i] = ",i+1)&&!scanf("%i",&mas1[i])); } printf("\nИсходный массив: "); for (i = 0;i<n;i++) { printf("%i ",mas1[i]); } for (i = 0;i<n;i++) { if(mas1[i]>0) { q=i; } } for (i = 0;i<q;i++) { s+=mas1[i]; } printf("\nСумма = %i ",s); getch(); return 0; }
Объяснение кода листинга программы
- #include
Включает в программу библиотеку, которая содержит функции для работы с памятью. - #include
Включает в программу библиотеку, которая содержит функции для работы со временем. - #include
Включает в программу библиотеку, которая содержит функции для работы с консолью. - #include
Включает в программу библиотеку, которая содержит функции для работы с файлами ввода/вывода. - #include
Включает в программу библиотеку, которая содержит функции для работы с локалью. - int main() Функция main() является точкой входа в программу.
- setlocale(LC_ALL,
RUSSIAN
); Устанавливает русскую локаль для форматирования вывода. - int n,i,q=0,s=0; Объявляет переменные, используемые в программе.
- while(!fflush(stdin)&&printf(
Введите размерность =
)&&!scanf(%i
,&n)); Запрашивает у пользователя размерность массива и сохраняет его в переменной n. - *int mas1 = (int)malloc(nsizeof(int));** Выделяет память под массив целых чисел.
- printf(
\n\t\tВвод данных\n\n
); Выводит сообщение о вводе данных. - for (i = 0;i<n;i++) Цикл, который читает элементы массива от пользователя.
- { Начало блока кода.
- while(!fflush(stdin)&&printf(
mas1[%i] =
,i+1)&&!scanf(%i
,&mas1[i])); Запрашивает у пользователя ввод элемента массива и сохраняет его в переменной mas1[i]. - } Конец цикла.
- printf(
\nИсходный массив:
); Выводит сообщение о выводе исходного массива. - for (i = 0;i<n;i++) Цикл, который выводит элементы массива.
- { Начало блока кода.
- printf(
%i
,mas1[i]); Выводит элемент массива на экран. - } Конец цикла.
- for (i = 0;i<n;i++) Цикл, который ищет последний положительный элемент массива.
- { Начало блока кода.
- if(mas1[i]>0) Проверяет, является ли элемент положительным.
- { Начало блока кода.
- q=i; Сохраняет индекс последнего положительного элемента в переменной q.
- } Конец блока кода.
- for (i = 0;i<q;i++) Цикл, который суммирует элементы массива до последнего положительного элемента.
- { Начало блока кода.
- s+=mas1[i]; Прибавляет значение элемента к сумме.
- } Конец цикла.
- printf(
\nСумма = %i
,s); Выводит сумму на экран. - getch(); Получает от пользователя любое нажатие клавиш и завершает программу.
- return 0; Возвращает 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д