Исправить код транспонирования матрицы - C (СИ)
Формулировка задачи:
помогите пожалуйста исправить программу
вот я написал но она не работает
помогите это исправить
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL,"Rus");
int i, j,a,b;
int st1,st2;
int M,N;
srand(time(NULL));
printf("введите количество строк и столбцов\n");
scanf("%i",&M);
scanf("%i",&N);
int **mas = (int**) malloc(M * sizeof(int*));
for(i = 0; i<M;i++)
mas[i] = (int*) malloc(N*sizeof(int));
int **mas2 = (int**) malloc(N * sizeof(int*));
for(i = 0; i<N;i++)
mas[i] = (int*) malloc(M*sizeof(int));
printf("Введенный массив:\n");
for (i=0;i<M;i++)
{ for(j=0;j<N;j++)
{ mas[i][j] = rand()%10-5;
printf("%4d", mas[i][j]);
}
printf("\n");
}
for (a=0;a<M;a++)
{
for(b=0;b<N;b++)
{
for(i=0;i<N;i++)
{
for(j=0;j=M;j++)
{
mas2[i][j]=mas[a][b];
}
}
}
}
printf("\n\nAfter swap:\n");
for (i=0;i<N;i++)
{ for(j=0;j<M;j++)
printf("%4d", mas2[i][j]);
printf("\n");
}
system("PAUSE");
return 0;
}Решение задачи: «Исправить код транспонирования матрицы»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Rus");
int i, j;
int M, N;
srand(time(NULL));
printf("введите количество строк и столбцов\n");
scanf("%d %d", &M, &N);
int mas[M][N], mas2[N][M];
printf("Введенный массив:\n");
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
mas[i][j] = rand() % 10 - 5;
printf("%4d", mas[i][j]);
}
printf("\n");
}
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
mas2[i][j] = mas[j][i];
}
}
printf("\n\nAfter swap:\n");
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
printf("%4d", mas2[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек
- Установка русской локали
- Объявление переменных i, j, M, N
- Инициализация генератора случайных чисел
- Вывод сообщения с просьбой ввести количество строк и столбцов
- Считывание количества строк и столбцов с помощью функции scanf
- Выделение памяти под матрицу mas и mas2
- Вывод введенной матрицы mas с помощью двух вложенных циклов и функции printf
- Транспонирование матрицы с помощью двух вложенных циклов и функции scanf
- Вывод транспонированной матрицы mas2 с помощью двух вложенных циклов и функции printf
- Ожидание нажатия клавиши с помощью функции system
- Завершение программы с возвратом 0