Максимальный по модулю элемент массива и сумма элементов - C (СИ)
Формулировка задачи:
привет. прошу помочь с заданиями
в одномерном массиве, состоящем из n вещественных элементов, вычислить:
номер максимального по модулю элемента массива и сумму элементов macсива,
расположенных после первого положительного элемента.
вывести массив вещественных чисел размеров N. Найти его наибольший и наименьший
элементы и поменять ихъ местами. Найти сумму и произведение всех элементов массива.
#include <stdio.h> #include <stdlib.h> int getSumOfNegativeArrayElements(int*, int); int getSumOfPositiveArrayElements(int*, int); int main(){ int size; int *array = NULL; printf("Input the array size: "); scanf("%d", &size); array = malloc(size * sizeof(int)); printf("Input array elements: "); int i = 0; for (; i < size; i++) { scanf("%d",(array + i)); } int positiveSum = getSumOfPositiveArrayElements(array,size); int negativeSum = getSumOfNegativeArrayElements(array,size); printf("\nResult:"); printf("\n\tsum of positive elements = %d", positiveSum); printf("\n\tsum of negative elements = %d\n\n", negativeSum); free(array); return 0; } int getSumOfNegativeArrayElements(int* array, int size){ int sum = 0; int i = 0; for (; i < size; i++){ if (array[i] > 0) { sum += array[i]; } } return sum; } int getSumOfPositiveArrayElements(int* array, int size){ int sum = 0; int i = 0; for (; i < size; i++){ if (array[i] < 0 ) { sum += array[i]; } } return sum; }
Решение задачи: «Максимальный по модулю элемент массива и сумма элементов»
textual
Листинг программы
int a[100]; int n = 100, im = 0, sum = 0; for (int i = 0; i < n; i++) { if (a[i]*a[i] >= a[im]*a[im]) { im = i; sum = 0; } else sum += a[i]; } printf("%d %d\n", im, sum);
Объяснение кода листинга программы
- Объявляется массив
a
размером 100 и переменныеn
,im
иsum
типаint
и инициализируются значениями 100, 0 и 0 соответственно. - Запускается цикл
for
от 0 доn
(то есть от 0 до 100 включительно). - Внутри цикла проверяется, является ли элемент
a[i]
максимальным по модулю среди всех элементов массиваa
. Если да, тоim
присваивается значениеi
, аsum
сбрасывается в 0. - Если элемент
a[i]
не является максимальным по модулю, то кsum
прибавляется значениеa[i]
. - После завершения цикла выводятся значения
im
иsum
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д