Вычислить сумму элементов массива, расположенных до последнего положительного элемента - 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;
}

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

  1. #include Включает в программу библиотеку, которая содержит функции для работы с памятью.
  2. #include Включает в программу библиотеку, которая содержит функции для работы со временем.
  3. #include Включает в программу библиотеку, которая содержит функции для работы с консолью.
  4. #include Включает в программу библиотеку, которая содержит функции для работы с файлами ввода/вывода.
  5. #include Включает в программу библиотеку, которая содержит функции для работы с локалью.
  6. int main() Функция main() является точкой входа в программу.
  7. setlocale(LC_ALL, RUSSIAN); Устанавливает русскую локаль для форматирования вывода.
  8. int n,i,q=0,s=0; Объявляет переменные, используемые в программе.
  9. while(!fflush(stdin)&&printf(Введите размерность =)&&!scanf(%i,&n)); Запрашивает у пользователя размерность массива и сохраняет его в переменной n.
  10. *int mas1 = (int)malloc(nsizeof(int));** Выделяет память под массив целых чисел.
  11. printf(\n\t\tВвод данных\n\n); Выводит сообщение о вводе данных.
  12. for (i = 0;i<n;i++) Цикл, который читает элементы массива от пользователя.
  13. { Начало блока кода.
  14. while(!fflush(stdin)&&printf(mas1[%i] =,i+1)&&!scanf(%i,&mas1[i])); Запрашивает у пользователя ввод элемента массива и сохраняет его в переменной mas1[i].
  15. } Конец цикла.
  16. printf(\nИсходный массив:); Выводит сообщение о выводе исходного массива.
  17. for (i = 0;i<n;i++) Цикл, который выводит элементы массива.
  18. { Начало блока кода.
  19. printf(%i,mas1[i]); Выводит элемент массива на экран.
  20. } Конец цикла.
  21. for (i = 0;i<n;i++) Цикл, который ищет последний положительный элемент массива.
  22. { Начало блока кода.
  23. if(mas1[i]>0) Проверяет, является ли элемент положительным.
  24. { Начало блока кода.
  25. q=i; Сохраняет индекс последнего положительного элемента в переменной q.
  26. } Конец блока кода.
  27. for (i = 0;i<q;i++) Цикл, который суммирует элементы массива до последнего положительного элемента.
  28. { Начало блока кода.
  29. s+=mas1[i]; Прибавляет значение элемента к сумме.
  30. } Конец цикла.
  31. printf(\nСумма = %i,s); Выводит сумму на экран.
  32. getch(); Получает от пользователя любое нажатие клавиш и завершает программу.
  33. return 0; Возвращает 0, что означает успешное завершение программы.

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


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

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

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