Ввести с клавиатуры матрицу MxN, выдать на печать её и транспонированную матрицу - C (СИ)
Формулировка задачи:
Здравствуйте, прошу у Вас помощи! Учусь на 1 курсе ВУЗа, не объяснив ничего и не прочитав лекций, задали написать программы на Си. Я абсолютный новичок в Си, да и вообще в программировании знаниями не блещу. Здесь вот мои наработки, компилятор выводит матрицу, а потом вместо транспонированной выводит опять первую матрицу. Пожалуйста, помогите найти ошибки
[/CLANG]
#include <stdio.h>
#include <conio.h>
int main()
{
int i=0, j=0, N=0, M=0, k=0;
printf ("Chiclo strok=");
scanf ("%d", &M);
printf ("Chiclo stolbcov=");
scanf ("%d", &N);
int A[M][N];
printf ("\nVvedite elementi matrici=");
for (i=0; i<M; i++)
{
for (j=0; j<N; j++)
{
printf ("\nA[%d][%d]=", i, j);
scanf ("%d", &(A[i][j]));
}
}
printf ("\nVivod matrici");
for (i=0; i<M; i++)
{
for (j=0; j<N; j++)
{
printf ("\nA[%d][%d]= %d\n", i, j, A[i][j]);
}
}
for (i=1; i<M; i++)
{
for (j=1; j<N; j++)
{
k=A[i][j];
A[i][j]=A[j][i];
A[j][i]=k;
}
}
printf ("\nVivod trans matrici");
for (i=0; i<M; i++)
{
for (j=0; j<N; j++)
{
printf ("\nA[%d][%d]= %d\n", i, j, A[i][j]);
}
}
getch ();
return 0;
}Решение задачи: «Ввести с клавиатуры матрицу MxN, выдать на печать её и транспонированную матрицу»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define N 7
#define M 12
int main()
{
int i, j, x = 1, A[N][M];
for(i = 0; i < N; i++, putchar('\n'))
for(j = 0; j < M; j++, x++)
printf("%3d", A[i][j] = x);
putchar('\n');
for(j = 0; j < M; j++, putchar('\n'))
for(i = 0; i < N; i++)
printf("%3d", A[i][j]);
return 0;
}
Объяснение кода листинга программы
В этом коде происходит ввод матрицы MxN с клавиатуры и её вывод на экран, а также вывод транспонированной матрицы. Список действий, которые выполняются в коде:
- Подключение необходимых библиотек.
- Определение размеров матрицы N и M.
- Инициализация счётчика x для заполнения матрицы.
- Создание матрицы A[N][M].
- Заполнение матрицы A с помощью двух вложенных циклов.
- Вывод на экран содержимого матрицы A с помощью двух вложенных циклов.
- Вывод на экран транспонированной матрицы A.
- Возврат 0, чтобы указать, что программа успешно завершилась.