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

C++ Создать функцию сортировки двумерного массива чисел с плавающей запятой размерностью NxM по убыванию элементов. В качестве аргументов функции следует указать:

• адрес исходного двумерного массива;

• адрес нового двумерного массива для записи;

• количество строк;

• количество столбцов.

В функции запрещено выделять память для последующей передачи ее в качестве возвращаемого значения. За «утечки» памяти будет снижаться (-1 за каждую). При возникновении грубых ошибок компиляции за попытку автоматически ставится

В функции main продемонстрировать работо созданной функции сортировки.
Вот есть код для целых чисел:
#include

using namespace std;
void sort(int** a, int** c, int n, int m) //функция сортировки
{
int r = 0;
int x, y;
int* z = new int[n * m];

for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
z[r] = a[j][i];
r++;
}
}
for (int i = n * m - 1; i >= 0; i--) {
x = 1;
for (int j = 0; j < i; j++) {
if (z[j] > z[j + 1]) {
y = z[j];
z[j] = z[j + 1];
z[j + 1] = y;
x = 0;
}
}
if (x == 1)
break; //выход из цикла
}
r--;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
c[i][j] = z[r];
r--;
}
}
}

int main() {
setlocale(LC_ALL, "Russian");
int n, m;
cout << "Введите размер массива ";//ввод размеров массив
cin >> n >> m;
int** a = new int* [n];
for (int i = 0; i < n; i++)
a[i] = new int[m];
int** c = new int* [n];
for (int i = 0; i < n; i++)
c[i] = new int[m];

for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
a[i][j] = ((rand() % 10));
//изначальный рандомный массив
cout << "array" << endl << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++)
cout << a[i][j] << " ";
cout << endl;
}
sort(a, c, n, m);
//сортированный массив
cout << "sorted_array" << endl << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++)
cout << c[i][j] << " ";
cout << endl;
}
cout << endl;
//очистка памяти а
for (int i = 0; i < n; i++)
delete[] a[i];
delete[] a;
for (int i = 0; i < n; i++)
//очистка памяти с
delete[] c[i];
delete[] c;
}

👇
Ответ:
Tusurgaliev11
Tusurgaliev11
03.10.2020

#include <iostream>

#include <time.h>  // для time()

//функция сортировки

void sort(double** _base_mas, double** _copy_mas, int n, int m)

{

// копируем из базового в под запись

for (long long jjj = 0; jjj < long long(n) * m; jjj++)

 *(*(_copy_mas + jjj / n) + jjj % n) = *(*(_base_mas + jjj / n) + jjj % n);

// сортируем

for (long long kkk = 0; kkk < long long(n) * m; kkk++)

 for (long long jjj = 1; jjj < long long(n) * m; jjj++) {

  double& first = *(*(_copy_mas + (jjj - 1) / n) + (jjj - 1) % n);

  double& second = *(*(_copy_mas + jjj / n) + jjj % n);

  if (first < second) std::swap(first, second);

 }

// конструкция избежать переполнение на байтовом уровне (из 4 в 8)

}

int main() {

srand(time(0));

int n;

int m;

std::cout << "Enter length: ";

std::cin >> n;

std::cout << "Enter height: ";

std::cin >> m;

double** base_mas = new double* [m]; // исходный массив

double** copy_mas = new double* [m]; // массив под запись

std::cout << "befor:" << std::endl;

for (int jjj = 0; jjj < m; jjj++) {

 base_mas[jjj] = new double[n];

 copy_mas[jjj] = new double[n];

 // заполняем исходный массив случайными числами и выводим в консоль

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

 {

  base_mas[jjj][kkk] = rand() % 101;

  std::cout << base_mas[jjj][kkk] << '\t';

 }

 std::cout << std::endl;

}

// сортируем

sort(base_mas, copy_mas, n, m);

// выводим результат

std::cout<<"\nafter:" << std::endl;

for (int jjj = 0; jjj < m; jjj++) {

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

  std::cout << copy_mas[jjj][kkk] << '\t';

 }

 std::cout << std::endl;

}

// овобождаем память (хотя т.к конец программы делать не обязательно)

for (int jjj = 0; jjj < m; jjj++) {

 delete[] base_mas[jjj];

 delete[] copy_mas[jjj];

}

delete[] base_mas;

delete[] copy_mas;

}

4,5(48 оценок)
Открыть все ответы
Ответ:
Nastyaprokopova2003
Nastyaprokopova2003
03.10.2020

Объяснение:

var a,b:real; c,e:integer;

begin

writeln('Введите два целых числа');

readln(a);

// нет ввода второго целого числа. надо написать readln(b);

c:=a/b; //ошибка! при делении может получится дробное число, а с указано как целое

d:=a mod b; //переменная d не описана в разделе var

e:=c+d;

writeln(c);

writeln(d);

writeln(e);

end.

Готовая программа:

var c, e:real; a,b,d:integer;

begin

writeln('Введите два целых числа');

readln(a);

readln(b);

c:=a/b;

d:=a mod b;

e:=c+d;

writeln(c);

writeln(d);

writeln(e);

end.

4,6(24 оценок)
Ответ:
terckovanata
terckovanata
03.10.2020

from random import randint

class G:

def __init__(self):

 self.wins = 0

def menu(self):

 print("stop - для остановки решения\nEnter продолжение.")

 while 1:

  if self.wins > 5:

   print("Ты хорошо справился, думаю на сегодня хватит")

   G.result(self)

   break

  a = input(": ")

  if a == "stop":

   G.result(self)

   break

  elif a == "":

   G.game(self)

  else: pass

def game(self):

 n1,n2 = randint(1,100),randint(1,100)  # примеры от и до

 print(f"Сколько будет: {n1} + {n2}?")

 if int(input("ответ: ")) == n1+n2:

  print("Верно")

  self.wins += 1

 else:

  print("Неверно")

 if self.wins != 5+1:

  print("Продолжим? Нажите Enter ля решения другого примера, введите stop для окончания")

def result(self):

 print("игра остановлена")

 print(f"Количество верных ответов: {self.wins}")

 if self.wins > 5:

  print("Молодец!")

 else:

  print("Потренируйся ещё")

a = G()

a.menu()


Напишите программу на python которая генерирует случайный пример на сложение двух чисел, например
4,4(29 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ