У одномірному масиві, який складається з n цілих елементів, обчислити: а) добуток елементів
масиву з додатними номерами; б) суму елементів масиву, розташованих між першим та останнім нульовими елементами; в) перетворити масив таким чином, щоб спочатку розташовувались усі додатні елементи, а потім – усі від’ємні (елементи, які дорівнюють 0, рахувати додатні).Ответы на вопрос
Відповідь:
C++ code:
#include <iostream>
#include <cstdlib>
#include <ctime>
void randarr(int *arr,const int size){
for(int i = 0; i < size; i++){
arr[i] = rand() % 20 - 10;
}
}
void printarr(int *arr,const int size){
for(int i = 0; i < size; i++){
std::cout << arr[i] << "\t";
}
std::cout << std::endl;
}
int product(int *arr,const int size){
int result = 1;
for(int i = 0; i < size; i++){
if(arr[i] > 0){
result *= arr[i];
}
}
return result;
}
int sum_first_second_null(int *arr,const int size){
int index_first = -1;
int index_second = -1;
int sum = 0;
for(int i = 0; i < size; i++){
if(arr[i] == 0){
index_first = i;
break;
}
}
if(index_first == -1){
std::cout << "Нулi не знайдено" << std::endl;
return 0;
}
else{
for(int i = size - 1; i > index_first; i--){
if(arr[i] == 0){
index_second = i;
break;
}
}
if(index_second == -1){
std::cout << "Тiльки один нуль" << std::endl;
return 0;
}
}
for(int i = index_first + 1; i < index_second; i++){
sum += arr[i];
}
return sum;
}
void sort(int *arr,const int size){
int temp;
for (int i = 0; i < size; i++){
if (arr[i] >= 0){
for (int j = 0; j < i; j++){
if (arr[j] < 0){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
}
int main(){
srand(time(NULL));
setlocale(LC_ALL, "Ukrainian");
int size;
std::cout << "Введiть розмiр: ";
std::cin >> size;
int *arr = new int[size];
randarr(arr,size);
printarr(arr,size);
sort(arr,size);
printarr(arr,size);
std::cout << "Сума елементiв мiж першим i останнiм нульовим елементом = " << sum_first_second_null(arr,size) << std::endl;
std::cout << "Добуток = " << product(arr,size);
delete[] arr;
return 0;
}
Пояснення:
а) Обчислення добутку елементів масиву з додатними номерами
Для обчислення добутку елементів масиву з додатними номерами, потрібно пройтись по всіх елементах масиву і перемножити ті, які мають додатні номери. Номери елементів починаються з 1.
Ось код, який реалізує цю операцію:
```python def multiply_positive_elements(array): product = 1 for i in range(len(array)): if i % 2 == 1: # перевіряємо, чи номер елемента є додатнім product *= array[i] return product ```
б) Обчислення суми елементів масиву, розташованих між першим та останнім нульовими елементами
Для обчислення суми елементів масиву, розташованих між першим та останнім нульовими елементами, потрібно знайти індекси першого та останнього нульових елементів, а потім просумувати елементи масиву, які знаходяться між цими індексами.
Ось код, який реалізує цю операцію:
```python def sum_elements_between_zeros(array): first_zero_index = -1 last_zero_index = -1
for i in range(len(array)): if array[i] == 0: if first_zero_index == -1: first_zero_index = i else: last_zero_index = i
if first_zero_index == -1 or last_zero_index == -1: return 0
sum_elements = 0 for i in range(first_zero_index + 1, last_zero_index): sum_elements += array[i]
return sum_elements ```
в) Перетворення масиву таким чином, щоб спочатку розташовувались всі додатні елементи, а потім – всі від’ємні (елементи, які дорівнюють 0, рахувати додатні)
Для перетворення масиву таким чином, щоб спочатку розташовувались всі додатні елементи, а потім – всі від’ємні (елементи, які дорівнюють 0, рахувати додатні), потрібно розділити елементи масиву на дві групи: додатні та від'ємні. Потім можна створити новий масив, в якому спочатку будуть розташовані всі додатні елементи, а потім – всі від'ємні.
Ось код, який реалізує цю операцію:
```python def rearrange_array(array): positive_elements = [] negative_elements = []
for element in array: if element > 0 or element == 0: # елементи, які дорівнюють 0, рахуємо додатніми positive_elements.append(element) else: negative_elements.append(element)
return positive_elements + negative_elements ```
Зауваження: У вказаному питанні не було вказано, як потрібно обробляти нульові елементи. У коді вище я вважав їх додатніми. Якщо потрібно розглядати їх окремо, код можна змінити відповідно.
Будь ласка, зверніть увагу, що код, наведений вище, є прикладом і може бути модифікований відповідно до ваших потреб.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
