C语言结构体编程题,求助大佬!

2025-02-27 02:00:38
推荐回答(1个)
回答1:

#include

#include


// 编写函数int *DefineArray(int n),其功能是利用内存分配函数动态创建n个整数数据的动态数组:

int *DefineArray(int n) {

    int *p = (int *)malloc(n * sizeof(int));

    if(p == NULL) printf("内存已经耗尽!\n");

    return p;

}

// 编写函数void FreeArray(int *p),其功能是释放p指向的存储空间。

void FreeArray(int *p) {

    if(p) free(p);// 如果p为NULL,则释放时会报错

}


int main() {

    int i,n,*a;

    printf("请输入学生人数:");

    scanf("%d",&n);

    if(a = DefineArray(n)) {

        printf("请输入%d个学生的成绩\n",n);

        for(i = 0; i < n; ++i) scanf("%d",&a[i]);

    }

    for(i = 0; i < n; ++i) printf("%02d\t%d\n",i + 1,a[i]);

    FreeArray(a);

    return 0;

}