Вычислить номер максимального по модулю элемента массива - C (СИ) (72276)
Формулировка задачи:
Помогите разобраться с этим. Можете пошагово объяснить, что нужно. Ну или готовый код, чтобы посмотреть, если можно
В одномерном массиве, состоящем из N вещественных элементов, вычислить:
* номер максимального по модулю элемента массива;
* сумму элементов массива, расположенных после первого положительного
элемента.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая
часть которых лежит в интервале [а, b], а потом — все остальные.
Решение задачи: «Вычислить номер максимального по модулю элемента массива»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main () {
const int n = 10;
double m[n] = { -3, -35, 2, 13, 8, 34, 1, 4, -3, 0 };
double sum=0,max=m[0];
int i,j,nmax=0;
int first=0;
for (i=0; i<n; i++) {
if (fabs(m[i])>max) { max=fabs(m[i]); nmax=i; }
if (first) sum+=m[i];
if (m[i]>0) first=1;
}
printf ("\nNumber=%d, Summa=%.1lf",nmax,sum);
double a=-4,b=10;
for (i=0; i<n-1; i++) {
if (floor(m[i])>=a && floor(m[i])<=b) continue;
for (j=i+1; j<n; j++) {
if (floor(m[j])>=a && floor(m[j])<=b) {
double temp=m[i]; m[i]=m[j]; m[j]=temp;
}
}
}
printf ("\nnew array: ");
for (i=0; i<n; i++) printf ("%.0lf ",m[i]);
getchar(); return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Задаём размер массива и инициализируем его значениями
- Инициализируем переменные для хранения суммы и максимального элемента, а также переменные для поиска индекса максимального элемента и самого элемента
- Проходим по всем элементам массива, сравнивая их с текущим максимальным элементом и обновляя значения при необходимости
- Выводим номер максимального элемента и суммарное значение элементов с положительными значениями
- Инициализируем переменные для цикла сортировки
- Проходим по всем элементам массива, сравнивая их с заданными значениями и меняя их местами при необходимости
- Выводим отсортированный массив
- Получаем значение от пользователя для завершения работы программы