Создать функцию возвращаемым значением которой является квадратная матрица - C (СИ)
Формулировка задачи:
Помогите, сижу на зачете, хз в чем ошибка
создать функцию возвращаемым значением которой является квадратная матрица размером 5 а значения элементов равны сумме соотв. индексов.
С помощью этой функции создать и напечатать матрицу
#include <stdio.h> #include <stdlib.h> int i=0,j=0,a=0,n=5; int mas[n,n]; void fun(int nn) { for (i=1;i<=n;i++) for (j=1;j<=n;j++) mas[i,j]=i+j; return *mas; } main() { scanf("%d",&n); fun(n); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) printf ("%d",mas[i,j]); printf("\n"); } system ("pause"); }
Решение задачи: «Создать функцию возвращаемым значением которой является квадратная матрица»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> enum { N = 5 }; int* func(unsigned n) { int* mx = (int*)malloc(n * n * sizeof(int)); unsigned i, j; for (i = 0; i < n; i++) for (j = 0; j < n; j++) mx[i * n + j] = i + j; return mx; } int main() { int* mx = func(N); unsigned i, j; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) printf("%d ", mx[i * N + j]); putchar('\n'); } free(mx); }
Объяснение кода листинга программы
В данном коде создана функция с именем func, которая принимает целочисленный аргумент n и возвращает указатель на массив целых чисел. Внутри функции происходит выделение памяти под массив n*n целых чисел с помощью malloc. Затем происходит заполнение этого массива значениями, равными сумме соответствующих индексов i и j. Функция возвращает указатель на выделенный массив. В функции main создаётся вызов функции func с аргументом N, после чего происходит вывод значений массива на экран с помощью цикла for и функции printf. Затем вызывается функция free для освобождения выделенной памяти.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д