Одномерный массив, не считает произведение между 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 ? }
Объяснение кода листинга программы
- Инициализируем переменную
min
значением первого элемента массиваmassiv
. - Инициализируем переменную
i
значением 1. - Начинаем цикл, который будет выполняться до тех пор, пока
i
меньшеn
. - Внутри цикла проверяем, является ли текущий элемент массива
massiv[i]
больше значения переменнойmin
. Если это так, то обновляем значение переменнойmin
значением текущего элемента массива. - После выполнения цикла, значение переменной
min
будет содержать минимальное значение из массиваmassiv
. - Значение переменной
minMAS
будет содержать индекс элемента с минимальным значением в массивеmassiv
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д