提高项目44-为动态数组扩容

来源:互联网 发布:阿里云飞天分布式系统 编辑:程序博客网 时间:2024/05/21 16:16
任务和代码:利用动态数组保存学生的成绩。当再有一批学生成绩需要保存时,要为之扩容(和吃自助一样,用多少,取多少,这好),请补充完整下面的程序实现如图所示的功能。


/*文件名:main.c作者:小风景完成日期:2016.7.21问题描述:利用动态数组保存学生的成绩。当再有一批学生成绩需要保存时,要为之扩容(和吃自助一样,用多少,取多少,这好),请补充完整下面的程序程序输出:*/#include <stdio.h>#include <malloc.h>int main( ){    int num,i,addNum;  //num是小组人数    printf("输入学生人数: ");    scanf("%d", &num);    float *score = (float*)malloc(num*sizeof(float));    printf("请输入学生成绩: \n");    //输入num名同学的成绩    for(i=0; i<num; i++)    {        fflush(stdin);        printf("请输入增加的第%d名学生的成绩:",i);        scanf("%f", score+i); //&score[i]    }    printf("需要增加多少名学生? ");    scanf("%d", &addNum);   //addNum是需要增加的人数    //下面的程序完成对数组的扩容,并输入另外的成绩    float *addstudent = (float *)malloc((addNum + num)*sizeof(float));    for(i = 0;i < num;i++)    {        *(addstudent + i) = *(score + i);    }    printf("请输入增加学生的成绩:\n");    for(i = 0;i < addNum;i++)    {        fflush(stdin);        printf("请输入增加的第%d名学生的成绩:",i);        scanf("%f",addstudent+num+i);    }    free(score);    score = addstudent;    num += addNum;    printf("现在共有%d名学生,他们的成绩是:\n",num);    for(i = 0;i < num;i++)    {        printf("%.2f   ",*(score+i));    }    free(score);    return 0;}


程序运行结果:


0 0
原创粉丝点击