Поиск суммы элементов массива, расположенных после минимального элемента - C (СИ)

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

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

В общем ошибка такая: работает через раз, пропускает максимальный и вместо этого берет последнее отрицательное число и делает его минимумом
Листинг программы
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #include <conio.h>
  4. #include <locale.h>
  5. #include <stdlib.h>
  6. #include <time.h>
  7. int linpoisk(int mass[], int N);
  8. #define BORDER_HIGH 100
  9. #define BORDER_LOW -100
  10.  
  11. int main()
  12. {
  13. setlocale(LC_ALL, "RUS");
  14. int N;
  15. int G = 0;
  16. int* mass;
  17. int i;
  18. printf("Введите кол-во эл-тов массива: ");
  19. scanf_s("%d", &N);
  20. mass = (int *)malloc(N * sizeof(int));
  21. srand((unsigned)(time(NULL)));
  22. printf("Заполните массив элементами:\n");
  23. for (i = 0; i < N; i++)
  24. {
  25. mass[i] = rand() % (BORDER_HIGH - BORDER_LOW + 1) + BORDER_LOW;
  26. printf("a[%d] = %d\n", i , mass[i]);
  27. }
  28.  
  29. printf("Сумма равна : %d \n", linpoisk(mass, N));
  30. free(mass); // освобождение памяти
  31. system("pause");
  32. }
  33. int linpoisk(int mass[], int N)
  34. {
  35. int i_find ;
  36. int min;
  37. int sum = 0;
  38. i_find = 0;
  39. min = mass[0];
  40. for (int i = 0; i < N; i++)
  41. {
  42. if ( min > mass[i])
  43. i_find = i;
  44. }
  45. printf("min : %d \n", i_find);
  46. for (int i = i_find; i < N; i++)
  47. {
  48. sum += mass[i];
  49. }
  50. return sum;
  51. }
Помогите исправить ошибку

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

textual
Листинг программы
  1. i_find = 0;
  2. for (int i = 1; i < N; i++)
  3. {
  4.         if ( mass[i_find] > mass[i])
  5.             i_find = i;
  6. }

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

  1. В переменной i_find хранится индекс минимального элемента массива mass.
  2. Цикл for начинается с i = 1 и продолжается до i < N.
  3. На каждой итерации цикла выполняется проверка: если значение элемента с индексом i_find больше значения текущего элемента массива, то i_find присваивается значение текущей итерации.
  4. После завершения цикла, в переменной i_find будет храниться индекс минимального элемента массива mass.
  5. Для получения суммы элементов, расположенных после минимального элемента, можно использовать следующий код: int sum = 0; for (int i = i_find + 1; i < N; i++) { sum += mass[i]; }

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


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

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

10   голосов , оценка 4 из 5

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

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

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