Найти числа между минимальным и максимальным значениям - C (СИ)
Формулировка задачи:
Сделал программу для того что бы найти числа между минимальным и максимальным значениям, как найти их суму?
#include <stdio.h>
#include <time.h>
#define SIZE 20
int main(void)
{
int i ,i_min, q, i_max;
float a[SIZE], min, max, w, S=0;
int rand(void);
srand((unsigned)time(NULL));
for( i = 0; i < SIZE;i++ )
{
a[i] = rand()% 32-11;
printf("i=%d a=%f\n", i, a[i]);
}
printf("\n");
min = a[0];
i_min = 0;
max= a[0];
i_max = 0;
for (i = 1; i < SIZE;i++ )
{
if( a[i]<min )
{
min = a[i];
i_min = i;
}
if( a[i]>max )
{
max = a[i];
i_max = i;
}
}
printf(" i = %d min = %f\n ", i_min, min);
printf(" i = %d min = %f\n ", i_max, max);
getchar();
}Решение задачи: «Найти числа между минимальным и максимальным значениям»
textual
Листинг программы
#include "stdafx.h"
/*Сделал программу для того что бы найти числа между минимальным и максимальным значениям, как найти их суму?*/
#include <stdio.h>
#include <time.h>
#include <stdlib.h>//
#define SIZE 20
int main(void)
{
int i ,i_min, q, i_max;
int a[SIZE], min, max, w, S=0;
int sum=0;
int c;//=i_min>i_max?i_max:i_min;//оператор "?" (альтернативный условному оператору if)
int b;//=i_min<i_max?i_max:i_min;
srand((unsigned)time(NULL));
for( i = 0; i < SIZE;i++ )
{
a[i] = rand()% 32-11;
printf("i=%d a=%d\n", i, a[i]);
}
printf("\n");
min = a[0];
i_min = 0;
max= a[0];
i_max = 0;
for (i = 1; i < SIZE;i++ )
{
if( a[i]<min )
{
min = a[i];
i_min = i;
}
if( a[i]>max )
{
max = a[i];
i_max = i;
}
}
c=i_min>i_max?i_max:i_min;//оператор "?" (альтернативный условному оператору if)
b=i_min<i_max?i_max:i_min;
for(i=c+1; i< b ;i++)
{
sum+=a[i];
}
printf("\n%d \n",sum);
printf(" i = %d min = %d\n ", i_min, min);
printf(" i = %d min = %d\n ", i_max, max);
getchar();
}
Объяснение кода листинга программы
В этом коде используется язык программирования C. Вот список действий, которые выполняются в этом коде:
- В начале программы подключаются необходимые заголовочные файлы.
- Задается размер массива a в 20 элементов.
- В функции main() инициализируются переменные i, i_min, q, i_max, a, min, max, w, S и sum.
- С помощью функции srand() инициируется генератор случайных чисел.
- В цикле for заполняется массив a случайными числами от -11 до 32-11.
- Находят минимальное и максимальное значение в массиве a, а также индексы этих значений (i_min и i_max).
- С помощью оператора
?(альтернативный условному оператору if) выбирается наибольшее значение между i_min и i_max и сохраняется в переменную c. - С помощью оператора
?(альтернативный условному оператору if) выбирается наименьшее значение между i_min и i_max и сохраняется в переменную b. - В цикле for начиная с c+1 и до b-1 (исключая границы) суммируются элементы массива a, которые находятся между c и b.
- Выводится сумма элементов, найденных в предыдущем цикле.
- Выводятся значения переменных i_min, min, i_max, max.
- Программа ожидает нажатия любой клавиши, чтобы завершить работу.