Максимальный по модулю элемент массива и сумма элементов - 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);

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

  1. Объявляется массив a размером 100 и переменные n, im и sum типа int и инициализируются значениями 100, 0 и 0 соответственно.
  2. Запускается цикл for от 0 до n (то есть от 0 до 100 включительно).
  3. Внутри цикла проверяется, является ли элемент a[i] максимальным по модулю среди всех элементов массива a. Если да, то im присваивается значение i, а sum сбрасывается в 0.
  4. Если элемент a[i] не является максимальным по модулю, то к sum прибавляется значение a[i].
  5. После завершения цикла выводятся значения im и sum.

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


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

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

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