Перевести из С++ в С. Вывести матрицу по образцу - C (СИ)

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

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

Должна же вывестись матрица такого вида 12345 01234 00123 00012 00001 Написала программу на С++, преподаватель попросил перевести на С. Помогите пожалуйста
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   int n;
    printf("Vvedite n: ");
    scanf("%d", &n);
    if (n <= 0)
    {
        printf ("Error!");
        return 0;
    }
    int arr = new int[n];
    for (int i = 0; i < n; ++i)
    {
        array[i] = new int[n];
        for (int j = n-1; 0 <= j; --j)
        {
            array[i][j] = ((0 < j+1) ? ((0 < j-i+1) ? (j-i+1) : 0) : 0);
        }
    }

    printf("Матрица: ");
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            printf ("array[i][j] ' '");
        }
        scanf("%d",&n)
    }

    for (int i = 0; i < n; ++i)
    {
        delete [] array[i];
    }
    delete [] array;
}

}

Решение задачи: «Перевести из С++ в С. Вывести матрицу по образцу»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
 
int main()
{
   int n, **arr,i, j;
 
    printf("Vvedite n: ");
    scanf("%d", &n);
    if (n <= 6)
        {
        printf ("Error!");
        return 0;
    }
    arr = (int **)malloc(n*sizeof(int *));
    for (i = 0; i < n; i++)
    {
        arr[i] = (int *) malloc(n*sizeof(int));
        for (j = n-1; 0 <= j; --j)
            {
            arr[i][j] = ((0 < j+1) ? ((0 < j-i+1) ? (j-i+1) : 0) : 0);
        }
    }
 
    printf("Матрица: \n");
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
            {
                    printf ("%d ", arr[i][j]);
        }
        printf("\n");
    }
 
 
     for (i = 0; i < n; ++i) free(arr[i]);
     free(arr);
     
    
    return 0;
}

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

  1. Программа запрашивает у пользователя ввод числа n, которое будет использоваться для определения размеров матрицы.
  2. Если n меньше или равно 6, программа выводит сообщение об ошибке и завершает работу.
  3. Программа выделяет память под массив указателей на int, который будет использоваться для хранения адресов строк матрицы.
  4. Затем программа выделяет память под каждую строку матрицы.
  5. В каждой строке заполняются значения матрицы согласно заданному образцу.
  6. Программа выводит матрицу на экран.
  7. После использования матрицы, память освобождается.

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


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

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

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