Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h" // подключение ввода, вывода
- #include "locale.h" // подключение русского языка
- #include "stdlib.h" // подключение рандома
- #include "time.h"
- void input(int** a, int n, int m) {
- printf("Введите числа (%d): ", n);
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++)
- scanf_s("%d", &a[i][j]);
- }
- }
- void inputrand(int** a, int n, int m) {
- srand(clock());
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++)
- a[i][j] = rand() % 100;
- }
- }
- void output(int** a, int n, int m) {
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++)
- printf("%3d ", a[i][j]);
- printf("\n");
- }
- }
- int main() {
- setlocale(LC_ALL, "rus"); // подключение русского языка
- int n; int m;
- printf("Введите размер матрицы nxm: ");
- do {
- scanf_s("%d%d", &n, &m);
- if ((n <= 0) || (m <= 0))
- printf("Повторите ввод, введите положительное число: ");
- } while ((n <= 0) || (m <= 0));
- int** a = (int**)malloc(n * sizeof(int**));
- for (int i = 0; i < m; i++) {
- a[i] = (int*)malloc(m * sizeof(int*));
- }
- printf("Выберите способ ввода массива:\n1-ввод с клавиатуры\n2-заполнение массива случайными числами\n");
- int f;
- do {
- scanf_s("%d", &f);
- if ((f != 1) && (f != 2))
- printf("Введите только 1 или 2: ");
- } while ((f != 1) && (f != 2));
- if (f == 1)
- input(a, n, m);
- else
- inputrand(a, n, m);
- printf("\nИсходная матрица\n");
- output(a, n, m);
- int max = a[0][0], jmax = 0, min = a[0][0], jmin = 0;
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- if (max > a[i][j]) {
- max = a[i][j];
- jmax = j;
- }
- if (min < a[i][j]) {
- min = a[i][j];
- jmin = j;
- }
- }
- }
- int s;
- for (int i = 0; i < n; i++) {
- s = a[i][jmax];
- a[i][jmax] = a[i][jmin];
- a[i][jmin] = s;
- }
- printf("\nИзменненная матрица\n");
- output(a, n, m);
- }
Add Comment
Please, Sign In to add comment