Поменять местами 2 строки матрицы, указанные по запросу пользователя - C (СИ)
Формулировка задачи:
Написать функцию, меняющую местами 2 строки матрицы указанные по запросу пользователя.
Вот мой исходник для матрицы.
#include<stdio.h>
#include<locale.h>
#include<time.h>
#include<windows.h>
#define N 4
#define M 5
int main()
{
setlocale(0,"");
int a[N][M], i, j;
srand(time(NULL));
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
a[i][j]=rand()%100;
printf("\t%4d",a[i][j]);
}
puts("\n");
}
return 0;
}Решение задачи: «Поменять местами 2 строки матрицы, указанные по запросу пользователя»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
#include <time.h>
int main()
{
srand(time(NULL));
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int m,n;
printf("Введите размер матрицы: ");
scanf("%d%d",&m,&n);
int mtr[m][n];
int i=0,j=0, k1, k2, c;
for(i=0; i<m; i++)
for(j=0; j<n; j++)
mtr[i][j]=rand()%10;
printf("\nПолученная матрица:");
for (i=0;i<m;i++)
{
printf("\n");
for (j=0;j<n;j++)
printf("%d ",mtr[i][j]);
}
printf("\nВведите k1 и k2)");
scanf("%d%d",&k1,&k2);
for(i=0;i<m;i++)
{
c=mtr[i][k1-1];
mtr[i][k1-1]=mtr[i][k2-1];
mtr[i][k2-1]=c;
}
printf("\nПолученная матрица:");
for (i=0;i<m;i++)
{
printf("\n");
for (j=0;j<n;j++)
printf("%d ",mtr[i][j]);
}
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с консолью, числами, строками и матрицами, а также для работы с Windows и временем.
- Задаем размер матрицы с помощью функции scanf, сохраняем его в переменные m и n.
- Создаем двумерный массив mtr размером m на n и заполняем его случайными числами от 0 до 9 с помощью цикла for и функции rand().
- Выводим полученную матрицу на экран с помощью цикла for и функции printf.
- Просим пользователя ввести номера k1 и k2 строк, которые нужно поменять местами.
- Используем цикл for для перебора строк матрицы и обмена значениями в соответствии с введенными номерами k1 и k2.
- Выводим полученную матрицу на экран с помощью цикла for и функции printf.
- Завершаем программу и возвращаем 0.