Программа с модулем, содержащим функции над динамическими массивами

Рейтинг: 0Ответов: 0Опубликовано: 25.01.2023

Задача. Программа с модулем, содержащим функции над динамическими массивами. Напишите программу, работающую с динамическими одномерными и двумерными массивами. Проект должен содержать файлы: main.c, TabliceDyn.h, TabliceDyn.c. В файлах ArrayDyn.h и ArrayDyn.c поместите объявления и определения функций что позволяют: • создавать, отображать и удалять одномерный динамический массив вещественных чисел, • создавать и отображать двумерный динамический массив вещественных чисел. В файле main.c проверьте написанные функции.

//TabliceDyn.h

#ifndef RABLICEDYN_H_INCLUDED
#define TABLICEDYN_H_INCLUDED

float ** StMass(int n,int m);
void WywMass(float **A,int n, int m);//Wydrukuj tablicę do konsoli
void WydalMass(float **A,int n);//usunięcie tablicy
#endif // TABLICEDYN_H_INCLUDED

//ArrayDyn.h

#ifndef ARRAYDYN_H_INCLUDED
#define ARRAYDYN_H_INCLUDED

float * CreateArray(int n);
void PrintArray(float A[],int n);
void DeleteArray(float *A);

#endif // ARRAYDYN_H_INCLUDED

//ArrayDyn.c

#include <stdio.h>
#include <stdlib.h>
#include "ArrayDyn.h"

float * CreateArray(int n)
{
    float *A = (float*) malloc (sizeof (float)*n);
    for (int i=0;i<n;i++)
    {
        A[i] = (float) (rand()%100)/10;
    }
    return A;
}

void PrintArray(float A[],int n) 
{
    for (int i=0;i<n;i++)
    {
        printf("%.2f\t",A[i]);
    }
    printf("\n");
}
void DeleteArray(float *A) 
{
    free(A);
}

//TabliceDyn.c

#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#include "TabliceDyn.h"

float ** StMass(int n,int m)
{

    float ** A = (float**) malloc (sizeof (float*)*n);
    for (int i=0;i<n;i++)
    {
        A[i] = (float*) malloc (sizeof (float)*n);
        for (int j=0;j<m;j++)
        {
            A[i][j] = (float) (rand()%100)/10;
        }
    }
    return A;
}
void WywMass(float ** A,int n,const int m)
{
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++)
        {
            printf("%.2f\t",A[i][j]);
        }
        printf("\n");
    }
}
void WydalMass(float **A,int n)//удаление таблицы
{
    for (int i=0;i<n;i++)
    {
        free(A[i]);
    }
    free(A);
}

//main.c

#include <stdio.h>
#include <stdlib.h>
#include "ArrayDyn.h"
#include "TabliceDyn.h"


int main()
{
    int n;
    int m;
    
    printf("Podaj n:\n");
    scanf("%d", &n);
    printf("Podaj m(taka sama jak n):\n");
    scanf("%d", &m);
    
    float *A = CreateArray(n);// Создайте новый массив и заполните его произвольными числами
    PrintArray(A,n);//Вывести массив в консоль
    DeleteArray(A);//удаление таблицы
    printf("\nElement tablicy po usunięciu tablicy: %.2f\n",A[0]);// давайте получим элемент массива после удаления массива
    
    
    float **M = StMass(n,m);// Создайте новый массив и заполните его произвольными числами
    WywMass(M,n,m);//Вывести массив в консоль
    WydalMass(M,n);//usunięcie tablicy
    printf("\nElement tablicy po usunięciu tablicy: %.2f\n\n",M[0][0]);// давайте получим элемент массива после удаления массива
    return 0;
    
}

Выдаёт ошибку:

[Error] Id returned 1 exit status

Подскажите пожалуйста как исправить?

Error

Ответы

Ответов пока нет.