Нужно написать программы на Си. и) Найти сумму элементов, абсолютное значение которых больше
среднеарифметического модулей отрицательных элементов.

д) В матрице А(4-строки,3-столбца) поменять местами наибольшие
элементы в первом и третьем столбцах.

4) Даны два натуральных числа. Выяснить
a) в каком из них сумма цифр больше. (Определить функцию для
расчета суммы цифр натурального числа.)

8 Составить процедуру, "рисующую" на экране горизонтальную линию из
любого числа символов "*".

РАБОТА С УКАЗАТЕЛЯМИ:
11 Объявите указатель на массив типа int и выделите память память для 12-
ти элементов. напишите три функции: первая должна заполнить ячейки
данными, вторая – показать данные на экран, третья - поменяет значения
четных и нечетных ячеек массива.
Например есть массив из 4-х элементов: 1 2 3 4
Данные после работы функции: 2 1 4 3

Karinaa11111 Karinaa11111    2   10.12.2020 16:31    10

Ответы
xhhxjdjdj4 xhhxjdjdj4  28.12.2023 11:43
Добрый день! Конечно, я помогу вам разобраться с каждым из вопросов.

И) Найти сумму элементов, абсолютное значение которых больше среднеарифметического модулей отрицательных элементов.

Для решения этой задачи необходимо выполнить следующие шаги:
1. Объявить и инициализировать переменные:
- sum = 0 (переменная для хранения суммы элементов)
- count = 0 (переменная для хранения количества элементов)
- neg_sum = 0 (переменная для хранения суммы отрицательных элементов)
- neg_count = 0 (переменная для хранения количества отрицательных элементов)
- avg_neg_abs (переменная для хранения среднеарифметического модулей отрицательных элементов)

2. Считать элементы массива с помощью цикла:
а) Для каждого элемента:
- Если элемент отрицательный, то прибавить его значение к переменной neg_sum и увеличить neg_count на 1
- Если модуль элемента больше avg_neg_abs, то прибавить его значение к переменной sum и увеличить count на 1

3. Подсчитать среднеарифметическое модулей отрицательных элементов(avg_neg_abs):
а) Если neg_count больше 0, то разделить neg_sum на neg_count и получить среднеарифметическое

4. Вывести на экран сумму элементов, абсолютное значение которых больше avg_neg_abs.

Д) В матрице А(4-строки,3-столбца) поменять местами наибольшие элементы в первом и третьем столбцах.

Для решения этой задачи необходимо выполнить следующие шаги:
1. Объявить и инициализировать переменные:
- max_value_col1_index = 0 (индекс строки, содержащей наибольшее значение в первом столбце)
- max_value_col3_index = 0 (индекс строки, содержащей наибольшее значение в третьем столбце)

2. Найти наибольшее значение в первом столбце:
а) Пройтись по каждой строке первого столбца и сравнить значение с наибольшим найденным до этого значениями.
б) Если текущее значение больше наибольшего, то обновить max_value_col1_index.

3. Найти наибольшее значение в третьем столбце:
а) Пройтись по каждой строке третьего столбца и сравнить значение с наибольшим найденным до этого значениями.
б) Если текущее значение больше наибольшего, то обновить max_value_col3_index.

4. Поменять местами значения max_value_col1_index и max_value_col3_index.

4) Даны два натуральных числа. Выяснить a) в каком из них сумма цифр больше. (Определить функцию для расчета суммы цифр натурального числа.)

Для решения этой задачи необходимо выполнить следующие шаги:
1. Объявление функции, которая будет вычислять сумму цифр натурального числа:
int sum_of_digits(int num) {
int sum = 0;
while (num > 0) {
sum += num % 10; // добавление последней цифры числа к сумме
num /= 10; // удаление последней цифры числа
}
return sum;
}

2. Объявление и инициализация переменных для двух заданных натуральных чисел: num1 и num2.

3. Вызов функции sum_of_digits для num1 и num2 и сохранение результатов в переменные sum1 и sum2 соответственно.

4. Сравнение sum1 и sum2 для определения, в каком из чисел сумма цифр больше и вывод соответствующего сообщения на экран.

8 Составить процедуру, "рисующую" на экране горизонтальную линию из любого числа символов "*".

Для решения этой задачи необходимо выполнить следующие шаги:
1. Объявление процедуры, которая будет рисовать горизонтальную линию:
void draw_horizontal_line(int num_symbols) {
for (int i = 0; i < num_symbols; i++) {
cout << "*";
}
}

2. Вызов процедуры draw_horizontal_line с нужным аргументом (число символов) для отрисовки линии.

11 Объявите указатель на массив типа int и выделите память для 12-ти элементов. напишите три функции: первая должна заполнить ячейки данными, вторая – показать данные на экран, третья - поменяет значения четных и нечетных ячеек массива. Например есть массив из 4-х элементов: 1 2 3 4. Данные после работы функции: 2 1 4 3

Для решения этой задачи необходимо выполнить следующие шаги:

1. Объявление указателя на массив типа int:
int* arr;

2. Выделение памяти для 12-ти элементов:
arr = new int[12];

3. Написание функции для заполнения ячеек массива данными:
void fill_array(int* arr, int size) {
// в данном случае size = 12
for (int i = 0; i < size; i++) {
arr[i] = i + 1; // заполняем ячейку значением i + 1
}
}

4. Вызов функции fill_array с указателем arr и размером массива (12).

5. Написание функции для вывода данных на экран:
void show_array(int* arr, int size) {
// в данном случае size = 12
for (int i = 0; i < size; i++) {
cout << arr[i] << " "; // выводим каждый элемент массива
}
}

6. Вызов функции show_array с указателем arr и размером массива (12).

7. Написание функции для замены значений четных и нечетных ячеек массива:
void swap_even_odd(int* arr, int size) {
for (int i = 0; i < size; i += 2) {
// меняем значения четных и нечетных ячеек местами
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}

8. Вызов функции swap_even_odd с указателем arr и размером массива (12).

9. Вызов функции show_array с указателем arr и размером массива (12) для отображения измененных данных.

Это подробное решение каждой задачи. Если у вас возникнут вопросы или потребуется дополнительная помощь, не стесняйтесь задавать их. Я всегда готов помочь вам!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика