
第十一周上机.docx
2页本文格式为Word版,下载可任意编辑第十一周上机 测验十 一、 编程题 〔题目〕本程序用于查找一组数中呈现峰值的数及其个数所谓呈现峰值的数,是指得志以下条件的数组元素a[i]: a[i-1]a[i+1] 或者 a[i-1]>a[i] 且 a[i] a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] 12 13 21 34 32 41 24 12 11 中a[3]既大于a[2]又大于a[4],a[4]既小于a[3]又小于a[5]故a[3]、a[4]、a[5]即为正、负峰值(不含第0个和结果一个) 运行时可输入如下数据调式程序: 12 13 21 34 32 41 24 12 11 //3个峰值 11 12 13 14 15 16 17 18 19 //0个峰值 要求: 1. 在主函数中,数组a[10]中的数据由文件file1.txt中读入后由屏幕输出;由主函数调用void find(int a[ ],int b[ ])函数,找出结果,并存入数组b中,并输出查找的结果(包括文件输出和屏幕输出)输出的文件为file2.txt。
2. voud find(int a[ ],int b[ ])函数根据以上算法找出峰值,并返回峰值的个数 3. 输出格式如下: 【运行结果】 测试数据如下: a[i]= 12 13 21 34 32 41 24 12 11 计算结果: b[i]= 34 32 41 有3个峰值 解释:(参见苏大教材,P346) 读文件: 1. 文件包含:#include 2. 建立读文件对象(f1),并开启文件file1.txt: ifstream f1(“file1.txt”) 通过类库,用输入流类ifstream建立读对象:f1,调用构造函数开启文件:file1.txt) 3. 将数据由文件读入数组a:f1>>a[i] ( 参照比较:cin>>a[i],键盘输入) 4. 关闭文件:f1.close( ) 即: #include ifstream f1(“file1.txt”); for(int i=0 ; i>a[i]; f1.close( ); 写文件: 1. 文件包含:#include 2. 建立写文件对象(f2),并开启文件file2.txt: ofstream f2(“file2.txt”) (通过类库,用输出流类ofstream建立写对象:f2,调用构造函数开启写文件:file2.txt) 3. 将数据由数组b[i]写入文件file2.txt:f2 #include 3 — 2 —。












