Динамические массивы: подсчет суммы элементов после минимального по модулю элемента - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день всем! Прошу помощи - не могу найти ошибку в коде, неправильно считает сумму элементов после минимального по модулю элемента. Спасибо откликнувшимся заранее. Условие задания: В одномерном массиве, состоящем из n вводимых с клавиатуры элементов, вычислить Сумму модулей элементов массива, расположенных после минимального по модулю элемента; Код С:
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <locale.h>
#include <math.h>
#include <malloc.h>
 
void mf(double*, int);
void main() {
    setlocale(LC_CTYPE, "Russian");
    double *A;
    int i, An;
    system("cls");
    fflush(stdin);
    printf("Введите размер массива А:\n");
    scanf_s("%d", &An);
    A = new double[An];
    if (A == NULL) {
        printf("Предел размерности");
        exit(0);
    }
    for (i = 0; i < An; i++)
    {
        printf("\n Введите значения массива А [%d]=", i);
        scanf_s("%lf", A + i);
    }
    mf(A, An);
    delete[]A;
    _getch();
}
void mf(double *A1, int An1) {
    double  sum = 0;
    int i1, min;
    for (i1 = 0; i1 < An1; i1++)
    {
        printf("A[%d]=%.2lf;\n", i1, *(A1 + i1));
        min = fabs(double (i1));
        if (fabs (*(A1 + i1)) < min);
        min = i1;
    }
    for (i1 = min; i1 < An1; i1++);
    {
        sum += fabs(*(A1 + i1));
        
        printf("\n Rezult=%4d", sum);
            }
    _getch();
 
}

Решение задачи: «Динамические массивы: подсчет суммы элементов после минимального по модулю элемента»

textual
Листинг программы
min = fabs(double (i1));
if (fabs (*(A1 + i1)) < min);
min = i1;

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

  1. Инициализируется переменная min значением абсолютного значения первого элемента массива A1 с помощью функции fabs() (упакованной функции abs() для чисел с плавающей точкой).
  2. Проверяется, является ли текущий элемент массива A1 меньшим по модулю, чем значение переменной min. Если это так, то значение переменной min обновляется значением индекса текущего элемента.
  3. В конце выполнения цикла переменная min будет содержать индекс элемента массива A1 с минимальным значением по модулю.

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

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