Найти сумму элементов массива, расположенных до минимального элемента массива - C (СИ)
Формулировка задачи:
В одномерном массиве n вещественных элементов.
вычислить:
-произведение положительных элементов массива.
-сумму элементов массива, расположенных до минимального элемента массива.
( решить двумя способами, используя указатели и без них)
Решение задачи: «Найти сумму элементов массива, расположенных до минимального элемента массива»
textual
Листинг программы
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
int main(){
int n = 5;
float *mas = new float[n];
for (int i = 0; i < n; i++){
mas[i] = rand() % 10;
}
//без указателей
float min = mas[0], pro = 1;
int minIndex = 0;
for (int i = 0; i < n; i++){
if (min>mas[i]){
min = mas[i];
minIndex = i;
}
if (mas[i]>0)
pro *= mas[i];
}
printf("Proizvedenie = %f\n", pro);
float sum = 0;
for (int i = 0; i < minIndex; i++){
sum += mas[i];
}
printf("Summa = %f\n", sum);
//с указателями
min = *(mas), pro = 1;
minIndex = 0;
for (int i = 0; i < n; i++){
if (min>*(mas+i)){
min = *(mas + i);
minIndex = i;
}
if (mas[i]>0)
pro *= *(mas + i);
}
printf("Proizvedenie = %f\n", pro);
sum = 0;
for (int i = 0; i < minIndex; i++){
sum += *(mas + i);
}
printf("Summa = %f\n", sum);
_getch();
}
Объяснение кода листинга программы
В этом коде выполняются следующие действия:
- Создается целочисленный массив
masразмером 5 с помощью оператораnew. - В цикле
forэлементы массива инициализируются случайными числами от 0 до 9 с помощью функцииrand(). - Находится минимальный элемент массива
masи индекс его расположенияminIndexс помощью циклаforи условного оператораif. - Находится произведение элементов массива, которые больше нуля, с помощью цикла
forи условного оператораif. - Выводится на экран произведение элементов массива
proizvedenieи сумма элементов, расположенных до минимального элементаsumma. - Создается указатель
minна первый элемент массиваmasи инициализируется его значением. - Создается указатель
proна первый элемент массиваmasи инициализируется его значением. - Создается указатель
minIndexна первый элемент массиваmasи инициализируется его значением. - В цикле
forэлементы массива сравниваются сminи если меньше, то обновляется значениеminиminIndex. - В цикле
forэлементы массива сравниваются с нулем и если больше, то обновляется значениеpro. - Выводится на экран произведение элементов массива
proizvedenieи сумма элементов, расположенных до минимального элементаsumma. - Создается указатель
sumна первый элемент массиваmasи инициализируется его значением. - В цикле
forэлементы массива сравниваются с нулем и если больше, то обновляется значениеsum. - Выводится на экран сумма элементов массива
summa. - Используется функция
getch()для приостановки выполнения программы.