Вычисления в одномерном массиве (найти ошибку) - C (СИ)

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

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

Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <locale.h>
  5. #define B 5
  6. int main()
  7. {
  8. setlocale(LC_CTYPE, "Russian");
  9. int A[B];
  10. int i,j,a,b;
  11. int max;
  12. int maxIn = 0;
  13. int sum=0;
  14. int count = 0;//переменная счетчика
  15. int x, y;
  16. int temp;
  17. printf("Введем элементы массива\n");
  18. for (int i = 0; i < B; i++)
  19. {
  20. printf("[%d]=", i);
  21. scanf("%d", &A[i]);
  22. }
  23. printf("Укажите интервал\n");
  24. printf("a=");
  25. scanf("%d", &x);
  26. printf("b=");
  27. scanf("%d", &y);
  28. a=A[x],b=A[y];//отрезок a,b
  29. for (i = 0; i<B; i++)
  30. {
  31. if (A[i] < a || A[i] > b)
  32. count++;//сам подсчет
  33. }
  34. printf("Kоличество элементов вне интервала: %d\n", count);
  35. max = abs(A[0]);
  36. for ( i = 0; i<B; i++)
  37. {
  38. if (max <= abs(A[i])){
  39. max = abs(A[i]);
  40. maxIn = i;
  41. }
  42. }
  43. printf("Максимальный элемент: max=A[%d]=%d\n",maxIn, abs(A[maxIn]));
  44. {
  45. for (i = maxIn + 1; i < B; i++)
  46. sum += A[i];
  47. printf("sum=%d\n", sum);
  48. }
  49. for (i = 0; i < B ; i++)
  50. {
  51. for (j = i+1; j < B ; j++)
  52. if (abs(A[i]) < abs(A[j]))
  53. {
  54. temp = A[j];
  55. A[j] = A[i];
  56. A[i] = temp;
  57. }
  58. }
  59. for (i = 0; i<B; i++)
  60. printf("%i ", A[i]);
  61. return 0;
  62. }
это код это задание В одномерном массиве, состоящем из N вещественных элементов, вычислить: 1) количество элементов массива, лежащих вне диапазона [ a, b]; 2) сумму элементов массива, расположенных после максимального элемента по модулю; 3) упорядочить элементы массива по убыванию модулей элементов. картинка прикреплена с программой

Решение задачи: «Вычисления в одномерном массиве (найти ошибку)»

textual
Листинг программы
  1. count = B - (y - x + 1); // при условии что y >= x. Если не так, то поменять их местами, и y и x < B

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

  1. Переменная count инициализируется значением B.
  2. В скобках вычисляется выражение y - x + 1.
  3. Результат вычитания присваивается переменной count.
  4. Условие проверяет, что y больше или равно x.
  5. Если условие не выполняется, то y и x меняются местами.
  6. И y и x меньше B.

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


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

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

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

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

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

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