Перевести из С++ в С. Вывести матрицу по образцу - 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; }
Объяснение кода листинга программы
- Программа запрашивает у пользователя ввод числа n, которое будет использоваться для определения размеров матрицы.
- Если n меньше или равно 6, программа выводит сообщение об ошибке и завершает работу.
- Программа выделяет память под массив указателей на int, который будет использоваться для хранения адресов строк матрицы.
- Затем программа выделяет память под каждую строку матрицы.
- В каждой строке заполняются значения матрицы согласно заданному образцу.
- Программа выводит матрицу на экран.
- После использования матрицы, память освобождается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д