Одномерный массив, не считает произведение между MIN и MAX элементом - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Кратко суть проблемы. Написал программу, которая генерирует одномерный массив из n элементов псевдослучайных чисел в заданом интервале. Задача была перемножить все элементы, которые находятся между минимальным и максимальным элементом. Вроде бы всё верно, максимальный и минимальный находит правильно, а вот перемножать не перемножает. Заранее спасибо за помощь
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
 
int main() {
int n, a, b, i, max, min, W, minMAS, maxMAS;
 
printf("Vvedite interval sluchainyh chisel\n");
printf("MIN: ");
scanf("%d", &a);
printf("MAX: ");
scanf("%d", &b);
printf("Vvedite kolichestvo chisel: ");
scanf("%d", &n);
 
int massiv[n];
 
srand(time(NULL));
 
for(i=0; i<n; i++) {
massiv[i]=a+rand()%(b-a+1); //забиваем в массив рандом от min до max
}
 
printf("Nachal'noe soderzhanie massiva: ");
for (i=0; i<n; i++) {
printf("%d ", massiv[i]);
}
printf("\n");
 
//ищем макс, мин и умножаем
  for(min=massiv[0], i=1; i<n; i++)
  {
     if(min>massiv[i])
        min=massiv[i];
        minMAS=i;
  }
 
  for(max=massiv[0], i=1; i<n; i++)
  {
     if(max<massiv[i])
        max=massiv[i];
        maxMAS=i;
  }
 
for(W=1, i=minMAS+1;i<maxMAS;i++){
W*=massiv[i];
}
 
printf("Proizvedenie: %d\n", W);
 
  printf("min %d\nmax %d", min, max);
return 0;
}

Решение задачи: «Одномерный массив, не считает произведение между MIN и MAX элементом»

textual
Листинг программы
//ищем макс, мин и умножаем
 for(min=massiv[0], i=1; i<n; i++)// допустим что минимальный элемент имеет индекс 0
 {
 if(min>massiv[i])
 min=massiv[i];
 minMAS=i;// Чему после этого цикла будет равна minMAS ?
 }

Объяснение кода листинга программы

  1. Инициализируем переменную min значением первого элемента массива massiv.
  2. Инициализируем переменную i значением 1.
  3. Начинаем цикл, который будет выполняться до тех пор, пока i меньше n.
  4. Внутри цикла проверяем, является ли текущий элемент массива massiv[i] больше значения переменной min. Если это так, то обновляем значение переменной min значением текущего элемента массива.
  5. После выполнения цикла, значение переменной min будет содержать минимальное значение из массива massiv.
  6. Значение переменной minMAS будет содержать индекс элемента с минимальным значением в массиве massiv.

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


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

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

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