Исправить код транспонирования матрицы - 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;
}

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

  1. Подключение необходимых библиотек
  2. Установка русской локали
  3. Объявление переменных i, j, M, N
  4. Инициализация генератора случайных чисел
  5. Вывод сообщения с просьбой ввести количество строк и столбцов
  6. Считывание количества строк и столбцов с помощью функции scanf
  7. Выделение памяти под матрицу mas и mas2
  8. Вывод введенной матрицы mas с помощью двух вложенных циклов и функции printf
  9. Транспонирование матрицы с помощью двух вложенных циклов и функции scanf
  10. Вывод транспонированной матрицы mas2 с помощью двух вложенных циклов и функции printf
  11. Ожидание нажатия клавиши с помощью функции system
  12. Завершение программы с возвратом 0

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


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

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

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