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

编写函数int*DefineArray(intn),其功能是利用内存分配函数动态创建n个整数数据的动态数组:编写函数voidFreeArray(int*p),其功能是释放... 编写函数int * DefineArray(int n),其功能是利用内存分配函数动态创建n个整数数据的动态数组:编写函数void FreeArray(int * p),其功能是释放p指向的存储空间。要求:在主调函数中,从键盘读人学生个数n,调用函数DefineArray分配存储空间,保存从键盘读人的n个学生的成绩,计算这此成绩的平均值并输出,调用函数FreeArray释放存储空间。 展开
 我来答
xoaxa
2020-06-15 · TA获得超过8608个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3434万
展开全部

#include <stdio.h>

#include <malloc.h>


// 编写函数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;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式