Информатика, вопрос задал timalppoop , 2 года назад

Розробити програму, дотримаючись таких вимог: використо- вувати статичні масиви; максимальні розміри масиву (N i M) – статичні константи; реальні розміри масиву n i m (n<N, m<M) – ввести з клаві- атури (при цьому здійснювати перевірку правильності введення даних); елементи масиву – псевдовипадкові числа, згенеровані на інтервалі [a, b], де a і b (a<b) вводяться з клавіатури; усі вхідні дані і також елементи масиву виводити на екран. 13 Реалізувати програму, яка міняє місцями останній рядок і перший стовпець квадратної матриці.​
Писати на мові C++​


Hn94: в умові стаказо, що це константні статичні значення, а значить треба їх задати. Я задам 100 100. Ви вже виправляйте на яке хочете значення. Рішення скину пізніше
Hn94: Так, але я питав про максимальні розміри матриці - константи N і M.
timalppoop: Без різниці
timalppoop: Кожний раз запускаючи програми , їх можна змінювати вписуючи з клавіатури
Hn94: Потом поясню після коду про що я казав
Hn94: Я думаю з умовою щось не так, дивіться. Якщо у нас наприклад матриця 5х5 розміром, то є проблеми з елементом з координатою [4;0], якщо ми міняємо перший стовпець та останній рядок
Hn94: передивіться будь ласка, відпишіть сюди, в мене код то готовий, але сама умова неправильна
timalppoop: Мені була дана така умова
timalppoop: Я думаю ця координата повинна залишатися на своєму місці , для успішного виконання програми
Hn94: Окей

Ответы на вопрос

Ответил Hn94
2

Ответ:

#include <iostream>

#include <ctime>

#include <string>

using namespace std;

int main()

{

srand(time(NULL));

const int N = 5, M = 5; // Константні розміри матриці

if (N != M) // Перевірка на не квадратну матрицю

{

 cout << "n should be equal to m" << endl;

 return 0;

}

int a, b; // Межі випадкових чисел масиву

cout << "Enter a: ";

cin >> a;

cout << "Enter b: ";

cin >> b;

int Width = max(to_string(a).length(), to_string(b).length()) + 1; // Ширина для cout

int arr[N][M]; // Статичний масив

int result[N][M]; // Статичний масив (результат)

cout << "n = " << N << endl

 << "m = " << M << endl

 << "Interval - [" << a << ";" << b << "]" << endl << endl

 << "Our matrix: " << endl;

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

{

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

 {

  arr[i][j] = a + rand() % (b - a + 1);

  cout.width(Width); // Щоб було красиво

  cout << arr[i][j];

 }

 cout << endl;

}

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

{

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

 {

  if (j == 0 && i != N - 1)

  {

   result[N - 1][i + 1] = arr[i][j];

  }

  else if (i == N - 1 && j != 0)

  {

   result[j - 1][0] = arr[i][j];

  }

  else

  {

   result[i][j] = arr[i][j];

  }

 }

}

cout << endl << "Result matrix:" << endl;

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

{

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

 {

  cout.width(Width); // Щоб було красиво

  cout << result[i][j];

 }

 cout << endl;

}

}

Объяснение:

ПС ти з клавіатури не можеш вводити розмір масиву, який заданий статично.(а в умові задачі сказано про статичний масив) Для цього треба створювати динамічний масив. Тож змінити розмір масиву можна змінивши в коді константи N та M. Пиши якщо що, код відредагую


timalppoop: Але тількі не по програмуванні
timalppoop: )))
Hn94: )))
Hn94: Удачі
timalppoop: Тобі також!
timalppoop: Містер Какьоін привіт
timalppoop: Тут такє дєло , в мене 11 екзамен і більше всього будуть практичні завдання
timalppoop: Якщо буде потрібно писати на мові C++, допоможеш?
Hn94: Якщо я це осилю то допоможу;)
timalppoop: Дякую великє , якщо що я тоді напишу
Новые вопросы