2014秋C++第16周 项目4参考 为动态数组扩容

简介: 课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 【项目4-为动态数组扩容】  下面的程序,利用动态数组保存学生的成绩。当再有一批学生成绩需要保存时,要为之扩容(和吃自助一样,用多少,取多少,这好),请补充完整下面的程序,实现如图所示的功能。i
课程主页在 http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在 云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 


【项目4-为动态数组扩容】
  下面的程序,利用动态数组保存学生的成绩。当再有一批学生成绩需要保存时,要为之扩容(和吃自助一样,用多少,取多少,这好),请补充完整下面的程序,实现如图所示的功能。

int main( )
{
    int num,i,addNum;  //num是小组人数
    cout<<"输入学生人数: ";
    cin>>num;
    int *score = new int[num];
    cout<<"请输入学生成绩: ";
    //输入num名同学的成绩
    for(i=0; i<num; i++)
        cin>>score[i]; //*(score+i)
    cout<<"需要增加多少名学生? ";
    cin>>addNum;   //addNum是需要增加的人数
    //下面的程序完成对数组的扩容,并输入另外的成绩
    ……
    cout<<"现在共有" << num << "名同学,他们的成绩是: "<<endl;
    for(i=0; i<num; i++)
        cout<<score[i]<<"  ";
    cout<<endl;
    delete []score;
    return 0;
}

  提示1:新增一个恰当长度的动态数组,将原数组中的数据“复制”到新数组,接着再输入新的数据。增加新数据后的数组,成为保存数据的新数组。
  提示2:为保证系统的效率,要及时释放不再用的空间

参考解答:

#include <iostream>
using namespace std;
int main( )
{
    int num,i,addNum;  //num是小组人数
    cout<<"输入学生人数: ";
    cin>>num;
    int *score = new int[num];
    cout<<"请输入学生成绩: ";
    //输入num名同学的成绩
    for(i=0; i<num; i++)
        cin>>score[i]; //*(score+i)
    cout<<"需要增加多少名学生? ";
    cin>>addNum;   //addNum是需要增加的人数
    //下面的程序完成对数组的扩容,并输入另外的成绩
    int *addScore = new int[num+addNum];
    cout<<"请输入学生成绩: ";
    //输入num名同学的成绩
    for(i=0; i<num; i++)
        addScore[i]=score[i];
    for(i=0; i<addNum; i++)
        cin>>addScore[num+i];
    delete []score;  //
    score = addScore;
    num = num +addNum;
    cout<<"现在共有" << num << "名同学,他们的成绩是: "<<endl;
    for(i=0; i<num; i++)
        cout<<score[i]<<"  ";
    cout<<endl;
    delete []score;
    return 0;
}






=================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====

目录
相关文章
|
28天前
|
开发工具 C语言 C++
CMake构建大型C/C++项目:跨平台设计与高级应用(二)
CMake构建大型C/C++项目:跨平台设计与高级应用
41 0
|
7天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
20 6
|
16天前
C/C++test两步完成CMake项目静态分析
通过将C/C++test集成到CMake项目中,并根据项目的需要进行配置,可以在两步内完成CMake项目的静态分析。这样可以帮助开发人员及时发现并修复潜在的代码问题,提高代码质量和可靠性。
8 0
|
23天前
|
IDE 算法 编译器
快速掌握陌生C++项目的科学与心理学策略
快速掌握陌生C++项目的科学与心理学策略
56 0
|
23天前
|
敏捷开发 安全 API
C/C++ 工程师面试:如何精彩展示你的项目经验并获得高分
C/C++ 工程师面试:如何精彩展示你的项目经验并获得高分
70 0
|
28天前
|
消息中间件 存储 算法
【C/C++ 泡沫精选面试题04】在实际项目中,多进程和多线程如何选择?
【C/C++ 泡沫精选面试题04】在实际项目中,多进程和多线程如何选择?
42 1
|
28天前
|
编译器 持续交付 项目管理
CMake构建大型C/C++项目:跨平台设计与高级应用(三)
CMake构建大型C/C++项目:跨平台设计与高级应用
36 0
|
28天前
|
编译器 Linux C语言
CMake构建大型C/C++项目:跨平台设计与高级应用(一)
CMake构建大型C/C++项目:跨平台设计与高级应用
66 0
|
29天前
|
设计模式 敏捷开发 持续交付
C++项目中打破循环依赖的锁链:实用方法大全(三)
C++项目中打破循环依赖的锁链:实用方法大全
47 0
|
29天前
|
测试技术 持续交付 API
C++项目中打破循环依赖的锁链:实用方法大全(二)
C++项目中打破循环依赖的锁链:实用方法大全
55 0