《C语言及程序设计》实践参考——为动态数组扩容
来源:互联网 发布:nginx apache ssl配置 编辑:程序博客网 时间:2024/05/16 07:46
返回:贺老师课程教学链接
【项目3-为动态数组扩容】
下面的程序,利用动态数组保存学生的成绩。当再有一批学生成绩需要保存时,要为之扩容(和吃自助一样,用多少,取多少,这好),请补充完整下面的程序,实现如图所示的功能。
提示2:为保证系统的效率,要及时释放不再用的空间
下面的程序,利用动态数组保存学生的成绩。当再有一批学生成绩需要保存时,要为之扩容(和吃自助一样,用多少,取多少,这好),请补充完整下面的程序,实现如图所示的功能。
#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("请输入学生成绩: "); //输入num名同学的成绩 for(i=0; i<num; i++) scanf("%f", score+i); //&score[i] printf("需要增加多少名学生? "); scanf("%d", &addNum); //addNum是需要增加的人数 //下面的程序完成对数组的扩容,并输入另外的成绩 free(score); return 0;}提示1:新增一个恰当长度的动态数组,将原数组中的数据“复制”到新数组,接着再输入新的数据。增加新数据后的数组,成为保存数据的新数组。
提示2:为保证系统的效率,要及时释放不再用的空间
[参考解答]
#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("请输入学生成绩: "); //输入num名同学的成绩 for(i=0; i<num; i++) scanf("%f", score+i); //&score[i] printf("需要增加多少名学生? "); scanf("%d", &addNum); //addNum是需要增加的人数 //下面的程序完成对数组的扩容,并输入另外的成绩 float *addScore = (float*)malloc((num+addNum)*sizeof(float)); printf("请输入学生成绩: "); //输入num名同学的成绩 for(i=0; i<num; i++) addScore[i]=score[i]; for(i=0; i<addNum; i++) scanf("%f", addScore+num+i); free(score); // score = addScore; num = num +addNum; printf("现在共有%d名同学,他们的成绩是: \n" , num); for(i=0; i<num; i++) printf("%.2f ", score[i]); printf("\n"); free(score); return 0;}
0 0
- 《C语言及程序设计》实践参考——为动态数组扩容
- 《C语言及程序设计》实践项目——动态数组 ->【项目3-为动态数组扩容】
- 《C语言及程序设计》实践参考——动态数组排序
- 《C语言及程序设计》实践参考——翻转数组
- 《C语言及程序设计》实践项目——动态数组
- 《C语言及程序设计》实践项目——动态数组 ->【项目2-动态数组排序】
- 《C语言及程序设计》实践参考——数组大折腾
- 《C语言及程序设计》实践参考——有序数组中插入数据
- 《C语言及程序设计》实践参考——有序数组中插入数据(函数版)
- 《C语言及程序设计》实践参考——当年第几天(数组方案)
- 《C语言及程序设计》实践参考——删除数组元素
- 《C语言及程序设计》实践参考——数组的排序
- 《C语言及程序设计》实践参考——折腾二维数组
- 《C语言及程序设计》实践参考——二维数组当函数参数
- 第14周 《C语言及程序设计》实践参考——有序数组中插入数据
- 《C语言及程序设计》实践参考——输出点阵图
- 《C语言及程序设计》实践参考——电阻并联
- 《C语言及程序设计》实践参考——正差值
- LeetCode-73 Set Matrix Zeroes(设置零矩阵)
- 面试题49:把字符串转换成整数
- java语言实现创建型设计模式—单例模式
- hdu 1890 Splay区间最小值、区间翻转
- 《C语言及程序设计》实践参考——动态数组排序
- 《C语言及程序设计》实践参考——为动态数组扩容
- Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别
- PADS学习之路08-PADS LOGIC中的三种工具栏
- 使用GPLv2 or ASLv2
- 移动终端app测试点总结
- 上课笔记--商务调研
- shell脚本编程基础
- 【设计模式】之三工厂
- BigDecimal 舍入模式(Rounding mode)介绍