Найти сумму положительных элементов массива - C (СИ) (73285)
Формулировка задачи:
#include "locale.h" // для корректного вывода в консоль русского языка
#include <stdio.h> // для вывода в консоль
#include <conio.h> // для доступа к команде _getch()
#include <time.h> // для доступа к time
#include <stdlib.h>
int main()
{
int n, //размер массива
i,
S=0, //сумма пол. элементов массива
P=1,//произведение
min,
indexMin=0,
max,
indexMax=0;
int *array1;
char *loc; // переменная для корректного вывода в консоль русского языка
loc = setlocale(LC_ALL,"Russian");
printf("Введите размерность массива: ");
scanf_s("%d", &n);
array1=(int*)malloc(n*sizeof(int));
srand(time(NULL)); // встряхивание генератора
for (i=0; i<n; i++)
{
array1[i] = rand() %100 - 50;
printf(" %d", &array1[i]);
if (array1[i]>0) //нахождение суммы положительных элементов
{
S+=array1[i];
}
}
printf("\nСумма положительных элементов массива: %i\n", S);
min = abs(array1[0]);
max = abs(array1[0]);
for (i=0; i<n; i++)
{
if (abs(array1[i])>abs(max))//нахождение максимального элемента
{
max = array1[i];
indexMax=i;
}
if (abs(array1[i])<abs(min))//нахождение минимального элемента
{
min = array1[i];
indexMin=i;
}
}
printf("Минимальный по модулю элемент массива: %d", &min);
printf("\n его индекс: %d\n", &indexMin);
printf("Максимальный по модулю элемент массива: %d", &max);
printf("\n его индекс: %d\n", &indexMax);
//вычисление произведения
if (indexMin<indexMax)
{
for (i=indexMin; i<indexMax; i++)
{
P*=array1[i];
}
}
else
{
for (i=indexMax; i<indexMin; i++)
{
P*=array1[i];
}
}
printf("\nПроизведение элементов массива между минимальным и максимальным: %d", &P);
free(array1);
_getch();
return 0;
}Решение задачи: «Найти сумму положительных элементов массива»
textual
Листинг программы
printf("Минимальный по модулю элемент массива: %d", &min);
* * printf("\n его индекс: %d\n", &indexMin);
* * printf("Максимальный по модулю элемент массива: %d", &max);
* * printf("\n его индекс: %d\n", &indexMax);
Объяснение кода листинга программы
- Вначале программа находит минимальный по модулю элемент массива и сохраняет его значение в переменной
min, а его индекс в переменнойindexMin. - Затем программа находит максимальный по модулю элемент массива и сохраняет его значение в переменной
max, а его индекс в переменнойindexMax. - После этого программа выводит на экран сообщение с минимальным элементом массива и его индексом.
- Затем программа выводит на экран сообщение с максимальным элементом массива и его индексом.