
В одновимірному масиві, що складається з N цілих елементів, обчислити: • мінімальний за модулем
елемент масиву; • суму модулів елементів масиву, розміщених після першого елемента, що дорівнює нулю. C

Ответы на вопрос

Відповідь:
С code:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>;
void randarr(int *arr,const int size){
for(int i = 0; i < size; i++){
arr[i] = rand() % 30 - 20;
}
}
void printarr(int *arr,const int size){
for(int i = 0; i < size; i++){
printf("%d\t",arr[i]);
}
printf("\n");
}
int min_abs(int *arr,const int size){
int min = abs(arr[0]);
for(int i = 0; i < size; i++){
if(abs(arr[i]) < min){
printf("%d %d\n",arr[i],min);
min = abs(arr[i]);
}
}
return min;
}
int first_null(int *arr,const int size){
int index = -1;
for(int i = 0; i < size; i++){
if(arr[i] == 0){
index = i;
return index;
}
}
return index;
}
int sum_abs(int *arr,const int size){
int ind = first_null(arr,size),sum = 0;
if(ind == -1){
return sum;
}
else{
for(int i = ind; i < size; i++){
sum += abs(arr[i]);
}
}
return sum;
}
int main(){
srand(time(NULL));
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int N;
printf("Введiть розмiр масиву: ");
scanf("%d",&N);
int *arr = new int[N];
randarr(arr,N);
printarr(arr,N);
int sum = min_abs(arr,N);
printf("Мiнiмальний за модулем елемент масиву:%d\n",min_abs(arr,N));
printf("Сума модулiв елементiв пiсля першого нульового елементу:%d\n",sum_abs(arr,N));
delete[] arr;
return 0
}



Для розв'язання цієї задачі потрібно пройтись по всіх елементах масиву та знайти мінімальний за модулем елемент. У цій задачі нульовий елемент не враховуємо при пошуку мінімального елемента. Також потрібно обчислити суму модулів елементів, які розташовані після першого елемента, що дорівнює нулю.
1. Ініціалізувати змінну min_modulus значенням, яке буде більше за будь-які можливі значення масиву. Наприклад, можна встановити min_modulus як INT_MAX (якщо ви працюєте з цілими числами).
2. Проходити по всіх елементах масиву. Перевіряти елементи на те, чи вони не рівні нулю.
3. Якщо поточний елемент не рівний нулю, перевіряти чи його модуль менший за min_modulus. Якщо так, оновлювати min_modulus значенням модулю цього елемента.
4. Після закінчення перебору, min_modulus буде містити найдешевший за модулем елемент.
5. Ініціалізувати змінну sum_modulus значенням 0.
6. Проходити по всіх елементах масиву, починаючи з першого елемента після першого елемента, що дорівнює нулю.
7. Додавати модуль поточного елемента до sum_modulus.
8. Після закінчення перебору, sum_modulus буде містити суму модулів елементів, які розташовані після першого елемента, що дорівнює нулю.
Отримані значення min_modulus і sum_modulus є відповідями.
Наприклад, для масиву [5, -2, 9, 0, -7], мінімальний за модулем елемент буде -2, оскільки |(-2)| = 2, що є мінімальним значенням модуля серед всіх елементів масиву. Сума модулів елементів після першого нульового елемента буде дорівнювати |9| + |(-7)| = 9 + 7 = 16.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili