Вычисления в одномерном массиве (найти ошибку) - C (СИ)
Формулировка задачи:
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <locale.h>
- #define B 5
- int main()
- {
- setlocale(LC_CTYPE, "Russian");
- int A[B];
- int i,j,a,b;
- int max;
- int maxIn = 0;
- int sum=0;
- int count = 0;//переменная счетчика
- int x, y;
- int temp;
- printf("Введем элементы массива\n");
- for (int i = 0; i < B; i++)
- {
- printf("[%d]=", i);
- scanf("%d", &A[i]);
- }
- printf("Укажите интервал\n");
- printf("a=");
- scanf("%d", &x);
- printf("b=");
- scanf("%d", &y);
- a=A[x],b=A[y];//отрезок a,b
- for (i = 0; i<B; i++)
- {
- if (A[i] < a || A[i] > b)
- count++;//сам подсчет
- }
- printf("Kоличество элементов вне интервала: %d\n", count);
- max = abs(A[0]);
- for ( i = 0; i<B; i++)
- {
- if (max <= abs(A[i])){
- max = abs(A[i]);
- maxIn = i;
- }
- }
- printf("Максимальный элемент: max=A[%d]=%d\n",maxIn, abs(A[maxIn]));
- {
- for (i = maxIn + 1; i < B; i++)
- sum += A[i];
- printf("sum=%d\n", sum);
- }
- for (i = 0; i < B ; i++)
- {
- for (j = i+1; j < B ; j++)
- if (abs(A[i]) < abs(A[j]))
- {
- temp = A[j];
- A[j] = A[i];
- A[i] = temp;
- }
- }
- for (i = 0; i<B; i++)
- printf("%i ", A[i]);
- return 0;
- }
Решение задачи: «Вычисления в одномерном массиве (найти ошибку)»
textual
Листинг программы
- count = B - (y - x + 1); // при условии что y >= x. Если не так, то поменять их местами, и y и x < B
Объяснение кода листинга программы
- Переменная
count
инициализируется значениемB
. - В скобках вычисляется выражение
y - x + 1
. - Результат вычитания присваивается переменной
count
. - Условие проверяет, что
y
больше или равноx
. - Если условие не выполняется, то
y
иx
меняются местами. - И
y
иx
меньшеB
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д