Посчитать количество чисел между двумя значениями - C (СИ)
Формулировка задачи:
Привет. Столнулся с такой проблемкой. Задается одномерный массив. В массиве нужно найти макс и мин значение. Когда нашли,то посчитать количество элементов массива между расположенных между макс и мин.
Собственно,а как посчитать количество между этими двумя? Я думал сделать еще один пустой массив,в котором можно будет хранить найденные позиции значения макс и мин,но на практике не получается
#include <stdio.h>
int main()
{
int i,arr[10]={10,21,-10,0,12,28,55,-10,0,1};
int max=min=arr[0];
for(i=0;i<10;i++)
if(arr[i]>max) max=arr[i];
else max=arr[0];
for(i=0;i<10;i++)
if(arr[i]<min) min=arr[i];
else min=arr[0];
for(i=0;i<10;i++)
if(min=arr[i]&&max=arr[i])
printf("Max is %i , Min is %i",max,min);
getchar();
return 0;
}Решение задачи: «Посчитать количество чисел между двумя значениями»
textual
Листинг программы
#include <stdio.h>
int main()
{
int i, a = 0, b = 0, arr[10]={10,21,-10,0,12,28,55,-10,0,1};
int max, min = max = arr[0];
for(i = 0;i < 10; i++)
if(arr[i] > max){
max=arr[i];
a = i;
}
for(i = 0;i < 10; i++)
if(arr[i] < min){
min=arr[i];
b = i;
}
printf("Max is arr[%d] = %d , Min is arr[%d] = %d\n", a, max, b, min);
printf("Between max and min is %d elements\n", a - b);
return 0;
}
Объяснение кода листинга программы
В этом коде выполняются следующие действия:
- Объявляются переменные:
i- это счётчик, который используется в циклах.aиb- это переменные, которые используются для поиска максимального и минимального значений в массивеarr.arr- это массив, в котором хранятся 10 целых чисел.maxиmin- это переменные, которые используются для хранения максимального и минимального значений массиваarr. Изначально предполагается, что первое значение в массиве (arr[0]) является и максимальным, и минимальным.
- Запускается первый цикл, который проходит по всем элементам массива
arr. Если текущий элемент больше, чемmax, то обновляются значенияmaxиa, гдеa- это индекс этого элемента. - Запускается второй цикл, который также проходит по всем элементам массива
arr. Если текущий элемент меньше, чемmin, то обновляются значенияminиb, гдеb- это индекс этого элемента. - Выводятся значения
max,min,aиb, чтобы пользователь мог увидеть, какие значения были найдены. - Вычисляется количество элементов между максимальным и минимальным значениями, т.е.
a - b, и выводится на экран. - Возвращается 0, что означает успешное завершение программы.