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

apdemyanovozaif8 apdemyanovozaif8    2   11.01.2021 14:29    56

Ответы
pzuzuk pzuzuk  11.01.2021 14:30

Объяснение:

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

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

язык C++


Указатель на указатель Создать двумерный массив 5х5, заполнить его случайными числами от 10 до 99 и
Указатель на указатель Создать двумерный массив 5х5, заполнить его случайными числами от 10 до 99 и
ПОКАЗАТЬ ОТВЕТЫ
tamilatumasheva tamilatumasheva  13.01.2024 20:09
Привет, школьник!

Для начала, чтобы выполнить эту задачу, нам нужно создать двумерный массив размером 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;
}
```

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

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