Вычисления в одномерном массиве (найти ошибку) - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д