实验1参考答案.docVIP

  • 67
  • 0
  • 约4.47千字
  • 约 8页
  • 2016-05-24 发布于重庆
  • 举报
实验1参考答案

实验1 在小范围内用C++增强C的功能 实验目的 快速掌握C++语言编程的方法,在小范围内增强C++的功能, 规范编程,复习常用调式技巧。 主要内容有: (1)输入流、输出流的使用; (2) new和delete运算符分配内存。 (3)函数的调用及按引用传递参数; (4)重载函数的定义及调用 (5)常用调式方法 2.实验内容 (1)编写C++风格的程序,解决百钱问题:将1元人民币兑换成1,2,5分的人民币,有多少种换法?以清晰的形式输出所有结果。 建议3重for循环改用双重for循环,提高效率! # include iostream using namespace std; void main() { int sum; while(cinsum)//输入以分为单位 { int one,two,five,count=0; for(five=0;five=sum/5;five++) { for(two=0;two=(100-five*5)/2;two++) { for(one=0;one=100-five*5-two*2;one++) if(one+two*2+five*5==sum) { count++; cout换法count : 1分one个、2分two个、5分five个endl; } } } } } (2)用new和delete运算符动态分配内存空间的方法编写程序。从键盘输入m*n整型数组的数据,m和n值由用户输入。利用一个函数计算出所有元素之和,以及最大值和最小值。在主函数中打印出所有结果。 方法1: # include iostream # include climits using namespace std; int m,n,max,min,sum,**arr; void process(); void main() { while(cinmn) { int i; max=INT_MIN,min=INT_MAX,sum=0; arr = new int *[m]; for(i=0; im; i++) arr[i] = new int[n]; process(); cout所有元素之和:sum、最大值:max、最小值minendl; for(i=0; im; i++) delete []arr[i]; delete []arr; } } void process() { int i,j; for(i=0;im;i++) { for(j=0;jn;j++) { cinarr[i][j]; sum+=arr[i][j]; if(arr[i][j]max) max=arr[i][j]; if(arr[i][j]min) min=arr[i][j]; } } } 方法2: # include iostream # include climits using namespace std; int m,n,max,min,sum,*arr; void process(); void main() { while(cinmn) { int i; max=INT_MIN,min=INT_MAX,sum=0; arr = new int [m*n]; process(); cout所有元素之和:sum、最大值:max、最小值minendl; delete []arr; } } void process() { int i,j; for(i=0;im*n;i++) { cinarr[i]; sum+=arr[i]; if(arr[i]max) max=arr[i]; if(arr[i]min) min=arr[i]; } } (3)假设我们班有50名同学,每个同学都报出自己的生日, 每个同学的生日都不相重的概率只有0.0296,如果有100个同学,不相重的概率为3.0725*10-7。相重复的概率如此之大与我们主观想象不同。编写程序,输入同学的人数n,计算出其生日不重复的概率。然后在用仿真的方法, 利用随机数产生每个同学的生日,计算出生日不重复的概率并与前面的结果进行比较。 # include iostream # include iomanip using namespace std; void main() { int n,i; while(cinn) { double f,a=1,b=1;

文档评论(0)

1亿VIP精品文档

相关文档