动态内存分配重载函数和内联函数的试验_第1页
动态内存分配重载函数和内联函数的试验_第2页
动态内存分配重载函数和内联函数的试验_第3页
动态内存分配重载函数和内联函数的试验_第4页
动态内存分配重载函数和内联函数的试验_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二、动态内存分配、重载函数和内联函数的试验试验目的通过本试验掌握使用new和delete的运算符创建动态数组的方法.。并熟悉重载、内联函数的编写与调用,了解面向对象程序设计的多态性原理。试验要求要求独立完成。以WORD文档形式,在webcc上提交源程序和运行结果(图)。编程特别强调程序可读性,注意要有足够的注释;使用代码缩进格式;对齐及有合适的空行。试验内容1. 动态数组能实现按需定义数组的大小,节省内存。试参照书中的程序2-9编写一程序将一行任意个数以空格分隔的数值数据读到一个数组中,并输出数据的个数、最大值、最小值、平均值及过零的次数(相邻两个数据符号相反)。#include <

2、iostream>using namespace std;double max(double *data,int number ) /求最大值double i=0.0;i=*data;while(-number)data+;if(i<*data)i=*data;return i;double min(double *data,int number ) /求最小值double i=0.0;i=*data;while(-number)data+;if(i>*data)i=*data;return i;double average(double *data,int number)

3、/求平均值double sum=0.0;int i=number;while(number-)sum+=*data+;return sum/i;int postive(double *data,int number) /求正数的个数int i=0;while(number-)if(*data+>0)i+;return i;int main() double data, *p_data, *p_temp=NULL; int num=0,i; cout << "Type a line of numeric data(separated by space), press

4、Enter to end: n" do cin >> data;num+;p_data = new doublenum;if (p_data = NULL) cout << "Not enough memory from heap.n" return 0; if(p_temp = NULL) *p_data =data;else for (i=0; i < num-1; i+) *(p_data+i) = *(p_temp+i); p_datanum-1 = data; delete p_temp;p_temp = p_data; w

5、hile (cin.get()!='n');cout << "there are " << num << " numbers" << endl;cout<<"the max number is "<<max(p_data,num)<<endl;cout<<"the min number is "<<min(p_data,num)<<endl;cout<<"th

6、e average is "<<average(p_data,num)<<endl;cout<<"the postive number is "<<postive(p_data,num)<<endl; delete p_data; return 0;运行结果2. 编写一个程序,用同一个函数名求任意2个或3个整数中的最大公约数。要求用重载函数实现。#include<iostream>using namespace std;int commer(int a,int b) /求两个数的最大公约数in

7、t com=0;if(a<b)com=a;elsecom=b;while(com)if(a%com)|(b%com)com-;elsebreak;return com;int commer(int a,int b,int c) /求三个数的最大公约数int com=0;if(a<b&&a<c)com=a;elseif(b<a&&b<c)com=b;elsecom=c;while(com)if(a%com)|(b%com)|(c%com)com-;elsebreak;return com;int main() /主函数int num=

8、0,i,data=0;int *p_data,*p_temp=NULL;cout<<" 输入两个或者三个正数n" do cin >> data;num+;p_data = new intnum;if (p_data = NULL) cout << "Not enough memory from heap.n" return 0; if(p_temp = NULL) *p_data =data;else for (i=0; i < num-1; i+) *(p_data+i) = *(p_temp+i); p_datanum-1 = data; delete p_temp;p_temp = p_data; while (cin.get()!='n'); if(num=2) cout<<"the max commer divisor is "<<commer(*p_data,*(p_data+1)<<endl; else co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论