Транспонирование двумерной матрицы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
#include <stdlib.h>
int main()
{
   int m=3;int n=3;int a[m][n];int b[m][n];int i,j,t;
   for(i=0; i<m; i++)
      {
      for(j=0; j<n; j++)
         {
         a[i][j]= rand() %10+1;
         printf("%d\t", a[i][j]);
         }
      printf("\n");
      }
printf("\n");
   for(i=0; i<m; i++)
   {
      for(j=0; j<n; j++)
      {
         b[i][j]= a[j][i];
         printf("%d\t", b[i][j]);
      }
      printf("\n");
   }
return 0;
}
Транспонирует только квадратные матрицы, если m не совпадает с n, то работает не верно. Подскажите, в чем допустил ошибку. Спасибо!

Решение задачи: «Транспонирование двумерной матрицы»

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <time.h>
 
 
int main()
{
 
    setlocale(LC_ALL,"rus");
    srand(time(NULL));
    int n=3,m=2,i,j;
    int a[n][m],b[m][n];
 
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            a[i][j]=rand()%10+1;
            printf("%d ",a[i][j]);
        }
         printf("\n");
    }
printf("\n");
printf("\n");
    for(i=0;i<m;i++)    //обрати внимание, что переменные цикла тоже изменились
    {
        for(j=0;j<n;j++)
        {
            b[i][j]=a[j][i];
            printf("%d ",b[i][j]);
        }
        printf("\n");
    }
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с языком C
  2. Установка русской локали для вывода информации
  3. Инициализация генератора случайных чисел
  4. Объявление и инициализация двумерной матрицы a динамическим массивом случайными значениями от 1 до 10
  5. Вывод значений матрицы a на экран
  6. Объявление и инициализация двумерной матрицы b таким же размером как и a, но с обратными индексами строк и столбцов
  7. Заполнение матрицы b значениями матрицы a с помощью обращения индексов
  8. Вывод значений матрицы b на экран
  9. Возврат 0 для завершения работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы