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

С/ (с++) написать программу,меняющую местами в произвольной квадратной матрице столбец, содержащий минимальный элемент и строку,содержащую максимальный элемент матрицы. написать функции: -заполнения двумерного массива случайными числами из диапазона [-200; +200] ; -вывода двумерного массива; -поиска индексов минимального и максимального элемента матрицы; -обмена значениями элементов произвольного столбца и произвольной строки квадратной матрицы.

👇
Ответ:
милана198026
милана198026
30.04.2020

#include "iostream"

#include "stdlib.h"

#include "locale.h"

#include "time.h"

using namespace std;

void create(int** arr, int n);

void show(int** arr, int n);

void max_quarter(int** arr, int n);

void find_min_max(int** arr, int n, int &pos_max_row, int &pos_min_col);

void change_row_column(int** arr, int n, int &pos_max_row, int &pos_min_col);

int main()

{

srand(time(NULL));

setlocale(LC_ALL, "russian");

bool flag = false;

int pos_max_row = 0, pos_min_col = 0;

   int n=0;

int answer = 100;

int **A = 0;

A = (int**)malloc(n*sizeof(int));

if(!A)

{

    int** A = (int**)malloc(n*sizeof(int));  

}

while (answer != 0)

{

 system("cls");

 cout << "Меню\n";

 cout << "1) Сформировать массив из случайных чисел размером n.\n";

 cout << "2) Вывести массив на экран сформированный массив.\n";

 cout << "3) Найти максимальный элемент в верхней и нижней четвертях матрицы\n";

 cout << "4) Обмен значениями произвольной строки с произвольным столбцом\n";

 cout << "0) Выход\n";

 cout << "Ваш выбор: ";

 while (!(cin >> answer)) {     //делаем проверку на ввод букв символов итд  

  cout << "Вы ввели символ или букву. Требуется вводить только цифры\nВвод: ";

  cin.clear();

  fflush(stdin);

 }

 system("cls");

 switch (answer)

 {

 case 1:

 {  

     cout << "Какого размера будет квадратичная матрица (x*x)?: ";

     while (!(cin >> n))

        {     //делаем проверку на ввод букв символов итд  

  cout << "Вы ввели символ или букву. Требуется вводить только цифры\nВвод: ";

  cin.clear();

  fflush(stdin);

     }

        create(A, n);

  cout << "Массив из случайных чисел сформирован!"<<endl;;

  system("pause");

  break;

 }

 case 2:

 {

  if(n != 0){

   cout << "Вывод массива на экран.\n";

   show(A, n);

  }else cout << "Посетите пункт 1" << endl;

  system("pause");

  break;

 }

 case 3:

 {

  if(n != 0){

   flag = true;

   cout << "Нахождение максимального значения элемента в матрице.\n";

   find_min_max(A,n, pos_max_row, pos_min_col);

  }else cout << "Посетите пункт 1" << endl;

  system("pause");

  break;

 }

 case 4:

 {

  if(flag == true)

  {

   cout << "Обмен значениями произвольной строки с произвольным столбцом.\n";

   change_row_column(A,n, pos_max_row, pos_min_col);

  }else cout << "Посетите пункт 3" << endl;

  system("pause");

  break;

 }

 system("pause");

 return 0;

 }

}

}

void create(int **arr, int n)

{

for(int i=0; i<n; i++)

{

    arr[i]=(int*)malloc(n*sizeof(int));

    if(!arr[i])

    {

     arr[i]=(int*)malloc(n*sizeof(int));

    }

 for(int j=0; j<n; j++)

 {

  arr[i][j]= -200 + rand()%401;

 }  

}

}

void show(int **arr, int n)

{

for (int i=0; i<n; i++)

{

 for(int j=0; j<n; j++)

 {

  printf("%7d", arr[i][j]);

 }

 printf("\n");

}

}

void find_min_max(int** arr, int n, int &pos_max_row, int &pos_min_col){

int min = arr[0][0];

int max = arr[0][0];

for(int i = 0; i < n; i++){

 for(int j = 0; j < n; j++){

  if(arr[i][j] > max)

  {

   max = arr[i][j];

   pos_max_row = i;

  }

  if(arr[i][j] < min)

  {

   min = arr[i][j];

   pos_min_col = j;

  }  

 }

}

cout << "Минимальное значение массива: " << min << endl;

cout << "Максимальное значение массива: " << max << endl;

}

void change_row_column(int** arr,int n, int &pos_max_row, int &pos_min_col){

cout << "Массив до преобразования. " << endl;

show(arr,n);

cout << "Изменяемая cтрока: " << pos_max_row  <<"\nИзменяемый столбец: " << pos_min_col << endl;

for(int i = 0; i < n; i++){

 int temp = arr[i][pos_min_col];  

 arr[i][pos_min_col] = arr[pos_max_row][i];

 arr[pos_max_row][i] = temp;

}

cout << "Массив после преобразования. " << endl;

show(arr,n);

}

4,6(98 оценок)
Открыть все ответы
Ответ:
азамат126
азамат126
30.04.2020
//Описание добавить не вышло на сайт, посему - в файле

#include "stdafx.h"
#include <conio.h>

void swap(short &a, short &b) {
    short c = a;
    a = b;

    b = c;
}

void sort(short &a, short &b, short &c)
{
    short min = a,
        max = c;
    if (min > b) min = b;
    if (min > c) min = c;
    if (max < a) max = a;
    if (max < b) max = b;
    b = a + b + c - min - max;
    a = min;
    c = max;
}

int main()
{
    short a1, b1, c1, a2, b2, c2;
    scanf_s("%hd %hd %hd", &a1, &b1, &c1);
    scanf_s("%hd %hd %hd", &a2, &b2, &c2);

    sort(a1, b1, c1);
    sort(a2, b2, c2);

    if ((a1 == a2) && (b1 == b2) && (c1 == c2))
        printf("Boxes are equal");
    else
        if ((a1 <= a2) && (b1 <= b2) && (c1 <= c2))
            printf_s("The first box is smaller than the second one");
        else
            if ((a2 <= a1) && (b2 <= b1) && (c2 <= c1))
                printf_s("The first box is larger than the second one");
            else
                printf_s("Boxes are incomparable");

    _getch();
    return 0;
}
4,6(19 оценок)
Ответ:
ekaterinakorol4
ekaterinakorol4
30.04.2020
1)
from random import random
N = 10
a = []
for i in range(N):
    b = int(random() * 50)
    a.append(b)
print(a)

min = 101
for i in range(N-1):
    s = a[i]+a[i+1]
    if (s < min) and (s % 2 == 1):
        min=s
print(min)

Пример:[41, 35, 16, 7, 29, 9, 16, 28, 10, 6]
23

2)
from random import random
N = 10
a = []
for i in range(N):
    b = int(random() * 50)-25
    a.append(b)
print(a)

k = 0
for i in range(N-1):
    p = a[i]*a[i+1]
    s = a[i]+a[i+1]
    if (p % 2 != 0) and (s > 0):
        k = k+1
print(k)

Пример:[11, 23, 12, -16, 21, 15, -11, -10, 10, 17]
3
4,6(12 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ