Найти числа между минимальным и максимальным значениям - 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. Вот список действий, которые выполняются в этом коде:

  1. В начале программы подключаются необходимые заголовочные файлы.
  2. Задается размер массива a в 20 элементов.
  3. В функции main() инициализируются переменные i, i_min, q, i_max, a, min, max, w, S и sum.
  4. С помощью функции srand() инициируется генератор случайных чисел.
  5. В цикле for заполняется массив a случайными числами от -11 до 32-11.
  6. Находят минимальное и максимальное значение в массиве a, а также индексы этих значений (i_min и i_max).
  7. С помощью оператора ? (альтернативный условному оператору if) выбирается наибольшее значение между i_min и i_max и сохраняется в переменную c.
  8. С помощью оператора ? (альтернативный условному оператору if) выбирается наименьшее значение между i_min и i_max и сохраняется в переменную b.
  9. В цикле for начиная с c+1 и до b-1 (исключая границы) суммируются элементы массива a, которые находятся между c и b.
  10. Выводится сумма элементов, найденных в предыдущем цикле.
  11. Выводятся значения переменных i_min, min, i_max, max.
  12. Программа ожидает нажатия любой клавиши, чтобы завершить работу.

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


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

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

15   голосов , оценка 4 из 5
Похожие ответы