Динамические массивы: подсчет суммы элементов после минимального по модулю элемента - 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;
Объяснение кода листинга программы
- Инициализируется переменная
min
значением абсолютного значения первого элемента массиваA1
с помощью функции fabs() (упакованной функции abs() для чисел с плавающей точкой). - Проверяется, является ли текущий элемент массива
A1
меньшим по модулю, чем значение переменнойmin
. Если это так, то значение переменнойmin
обновляется значением индекса текущего элемента. - В конце выполнения цикла переменная
min
будет содержать индекс элемента массиваA1
с минимальным значением по модулю.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д