М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
husanov18p06h9l
husanov18p06h9l
06.01.2021 06:17 •  Информатика

Указатель на указатель Создать двумерный массив 5х5, заполнить его случайными числами от 10 до 99 и вывести на экран. Поменять местами максимальный элемент каждой строки с первым элементом в соответствующей строке. Задачу решить с указателей.​

👇
Ответ:
ulianaroingova
ulianaroingova
06.01.2021

Объяснение:

Вопрос о том, как выделить память под двумерный массив, подробно раскрыт в этом уроке – Задачи: Указатели в С++ (задача №3). В принципе, комментариев в исходном коде должно хватить, чтобы разобраться с решением этой задачи. Но если вопросы остались – задавайте.

Результат работы программы: на 2 фото

язык C++


Указатель на указатель Создать двумерный массив 5х5, заполнить его случайными числами от 10 до 99 и
Указатель на указатель Создать двумерный массив 5х5, заполнить его случайными числами от 10 до 99 и
4,4(52 оценок)
Ответ:
danilgrekov20
danilgrekov20
06.01.2021
Привет, школьник!

Для начала, чтобы выполнить эту задачу, нам нужно создать двумерный массив размером 5x5.

```cpp
int arr[5][5];
```

Теперь нам нужно заполнить массив случайными числами от 10 до 99. Для этого нам понадобится использовать генератор случайных чисел. Для простоты мы можем использовать функцию `rand()` из библиотеки ``, однако она будет генерировать числа в диапазоне от 0 до RAND_MAX, поэтому нам нужно будет привести числа к нашему требуемому диапазону.

```cpp
#include
#include
#include

int main() {
srand(time(0));

int arr[5][5];

for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
arr[i][j] = rand() % 90 + 10;
}
}

// Выводим массив на экран
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}

return 0;
}
```

В данном коде мы используем функцию `srand()` с аргументом `time(0)`, чтобы обеспечить генерацию случайных чисел при каждом запуске программы.

Теперь, чтобы поменять местами максимальный элемент каждой строки с первым элементом в соответствующей строке, нам нужно найти максимальное число в каждой строке и поменять его местами с первым элементом.

Для выполнения этой задачи мы можем использовать указатели. Мы можем объявить указатель, который будет указывать на элементы в каждой строке, и использовать его для поиска максимального числа в каждой строке и для выполнения обмена.

```cpp
#include
#include
#include

int main() {
srand(time(0));

int arr[5][5];

for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
arr[i][j] = rand() % 90 + 10;
}
}

// Выводим массив на экран
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}

// Меняем местами максимальный элемент каждой строки с первым элементом
for (int i = 0; i < 5; i++) {
int max = arr[i][0];
int* maxPtr = &arr[i][0];

for (int j = 0; j < 5; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
maxPtr = &arr[i][j];
}
}

int temp = arr[i][0];
arr[i][0] = *maxPtr;
*maxPtr = temp;
}

// Выводим массив с уже поменянными элементами на экран
std::cout << "Массив после обмена местами максимального элемента и первого элемента в каждой строке:" << std::endl;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}

return 0;
}
```

В этом коде мы добавили новый цикл, который перебирает все строки в массиве. В нем мы ищем максимальное число в каждой строке и сохраняем его значение и указатель на него. Затем мы между собой меняем местами первый элемент и максимальное число с помощью указателей.

Надеюсь, это помогло тебе понять задачу и как ее решить с помощью указателей. Если у тебя есть какие-либо дополнительные вопросы, не стесняйся задавать. Удачи!
4,4(58 оценок)
Проверить ответ в нейросети
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ